[med-svn] [freebayes] 01/01: Mass commit of freebayes 1.1.0 packaging, the Git archive is quite spoiled but I do not think that the history is really interesting.

Andreas Tille tille at debian.org
Sat Sep 2 12:46:23 UTC 2017


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository freebayes.

commit 150a1f16a337a1ab4bc093c74bfdd6aafa6f9d41
Author: Andreas Tille <tille at debian.org>
Date:   Sat Sep 2 14:00:23 2017 +0200

    Mass commit of freebayes 1.1.0 packaging, the Git archive is quite spoiled but I do not think that the history is really interesting.
---
 debian/README.source                               |  11 +
 debian/bamleftalign.1                              |  27 --
 debian/changelog                                   |   6 +
 debian/control                                     |   9 +-
 debian/copyright                                   | 428 +------------------
 debian/createmanpages                              |  28 ++
 debian/freebayes.1                                 | 459 ---------------------
 debian/manpages                                    |   1 -
 debian/patches/fix_test.patch                      |   8 +
 debian/patches/series                              |   3 +
 debian/patches/use_debian_packaged_bamtools.patch  |  68 +--
 .../patches/use_debian_packaged_libjsoncpp.patch   |  17 +
 debian/patches/use_debian_packaged_seqlib.patch    |  87 ++++
 debian/patches/use_debian_packaged_vcflib.patch    | 271 ++----------
 debian/patches/vcffirstheader.patch                |  29 ++
 debian/rules                                       |   6 +-
 debian/test-simple-bash/lib/test-simple.bash       | 110 +++++
 debian/test-simple-bash/test/basics.t              |  26 ++
 debian/test-simple-bash/test/doc.t                 |  15 +
 debian/test-simple-bash/test/no-label.t            |  25 ++
 20 files changed, 444 insertions(+), 1190 deletions(-)

diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 0000000..26e4dc4
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1,11 @@
+To run the test suite some bash testing framework was used
+bu upstream as Git submodules.  For the Git packaging these
+were downloaded separately
+
+Files: debian/bash-tap/*
+  Obtained from
+    https://github.com/illusori/bash-tap
+
+Files: debian/test-simple-bash/*
+  Obtained from
+    https://github.com/ingydotnet/test-simple-bash/tree/master/lib
diff --git a/debian/bamleftalign.1 b/debian/bamleftalign.1
deleted file mode 100644
index db395a7..0000000
--- a/debian/bamleftalign.1
+++ /dev/null
@@ -1,27 +0,0 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.4.
-.TH BAMLEFTALIGN "1" "January 2017" "bamleftalign 1.0.2" "User Commands"
-.SH NAME
-bamleftalign \- Left\-aligns and merges the insertions and deletions in all alignments
-.SH SYNOPSIS
-[BAM data stream] | \fBbamleftalign\fR [options]
-.SH DESCRIPTION
-Left\-aligns and merges the insertions and deletions in all alignments in stdin.
-Iterates until each alignment is stable through a left\-realignment step.
-.SH OPTIONS
-.TP
-\fB\-f\fR \fB\-\-fasta\-reference\fR FILE
-FASTA reference file to use for realignment (required)
-.TP
-\fB\-d\fR \fB\-\-debug\fR
-Print debugging information about realignment process
-.TP
-\fB\-s\fR \fB\-\-suppress\-output\fR
-Don't write BAM output stream (for debugging)
-.TP
-\fB\-m\fR \fB\-\-max\-iterations\fR N
-Iterate the left\-realignment no more than this many times
-.TP
-\fB\-c\fR \fB\-\-compressed\fR
-Write compressed BAM on stdout, default is uncompressed
-.SH AUTHOR
-This manpage was written by Andreas Tille for the Debian distribution and can be used for any other usage of the program.
diff --git a/debian/changelog b/debian/changelog
index eaeaad5..8cf611a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+freebayes (1.1.0-1) UNRELEASED; urgency=low
+
+  * New upstream version
+
+ -- Andreas Tille <tille at debian.org>  Tue, 08 Nov 2016 11:40:28 +0100
+
 freebayes (1.0.2-1) unstable; urgency=low
 
   * Initial packaging (Closes: #851306)
diff --git a/debian/control b/debian/control
index 301577b..99d8397 100644
--- a/debian/control
+++ b/debian/control
@@ -7,12 +7,16 @@ Priority: optional
 Build-Depends: debhelper (>= 9),
                cmake,
                pkg-config,
+               python,
                zlib1g-dev,
                libbamtools-dev,
-               libvcflib-dev,
+               libvcflib-dev (>= 1.0.0~rc1+dfsg1-4),
                libtabixpp-dev,
+               libseqlib-dev,
                bc,
-               samtools
+               samtools,
+               parallel,
+               libvcflib-tools
 Standards-Version: 3.9.8
 Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/freebayes.git
 Vcs-Git: https://anonscm.debian.org/git/debian-med/freebayes.git
@@ -22,6 +26,7 @@ Package: freebayes
 Architecture: any
 Depends: ${shlibs:Depends},
          ${misc:Depends}
+Recommends: parallel
 Description: Bayesian haplotype-based polymorphism discovery and genotyping
  FreeBayes is a Bayesian genetic variant detector designed to find
  small polymorphisms, specifically SNPs (single-nucleotide
diff --git a/debian/copyright b/debian/copyright
index 06830b0..6a31d5e 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -9,6 +9,14 @@ License: MIT
 Files: debian/bash-tap/*
 Copyright: 2012-2016 Sam Graham
 License: MIT
+Comment: Files obtained from
+    https://github.com/illusori/bash-tap
+
+Files: debian/test-simple-bash
+Copyright: 2013 Ingy.Net
+License: MIT
+Comment: File obtained from
+    https://github.com/ingydotnet/test-simple-bash/tree/master/lib
 
 Files: ttmath/*
 Copyright: 2006-2012, Tomasz Sowa
@@ -39,426 +47,6 @@ License: BSD-3-clause
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  THE POSSIBILITY OF SUCH DAMAGE.
 
-Files: src/fastlz.*
-Copyright: 2005-2007 Ariya Hidayat <ariya at kde.org>
-License: MIT
-
-Files: paper/genome_research.bst
-Copyright: 1994-2007 Patrick W Daly
-License: LPPL-1+
- The LaTeX Project Public License
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- .
- LPPL Version 1.3c  2008-05-04
- .
- PREAMBLE
- ========
- .
- The LaTeX Project Public License (LPPL) is the primary license under
- which the LaTeX kernel and the base LaTeX packages are distributed.
- .
- You may use this license for any work of which you hold the copyright
- and which you wish to distribute.  This license may be particularly
- suitable if your work is TeX-related (such as a LaTeX package), but 
- it is written in such a way that you can use it even if your work is 
- unrelated to TeX.
- .
- The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
- below, gives instructions, examples, and recommendations for authors
- who are considering distributing their works under this license.
- .
- This license gives conditions under which a work may be distributed
- and modified, as well as conditions under which modified versions of
- that work may be distributed.
- .
- We, the LaTeX3 Project, believe that the conditions below give you
- the freedom to make and distribute modified versions of your work
- that conform with whatever technical specifications you wish while
- maintaining the availability, integrity, and reliability of
- that work.  If you do not see how to achieve your goal while
- meeting these conditions, then read the document `cfgguide.tex'
- and `modguide.tex' in the base LaTeX distribution for suggestions.
- .
- .
- DEFINITIONS
- ===========
- .
- In this license document the following terms are used:
- .
-    `Work'
-     Any work being distributed under this License.
- .
-    `Derived Work'
-     Any work that under any applicable law is derived from the Work.
- .
-    `Modification' 
-     Any procedure that produces a Derived Work under any applicable
-     law -- for example, the production of a file containing an
-     original file associated with the Work or a significant portion of
-     such a file, either verbatim or with modifications and/or
-     translated into another language.
- .
-    `Modify'
-     To apply any procedure that produces a Derived Work under any
-     applicable law.
- .
-    `Distribution'
-     Making copies of the Work available from one person to another, in
-     whole or in part.  Distribution includes (but is not limited to)
-     making any electronic components of the Work accessible by
-     file transfer protocols such as FTP or HTTP or by shared file
-     systems such as Sun's Network File System (NFS).
- .
-    `Compiled Work'
-     A version of the Work that has been processed into a form where it
-     is directly usable on a computer system.  This processing may
-     include using installation facilities provided by the Work,
-     transformations of the Work, copying of components of the Work, or
-     other activities.  Note that modification of any installation
-     facilities provided by the Work constitutes modification of the Work.
- .
-    `Current Maintainer'
-     A person or persons nominated as such within the Work.  If there is
-     no such explicit nomination then it is the `Copyright Holder' under
-     any applicable law.
- .
-    `Base Interpreter' 
-     A program or process that is normally needed for running or
-     interpreting a part or the whole of the Work.    
- .
-     A Base Interpreter may depend on external components but these
-     are not considered part of the Base Interpreter provided that each
-     external component clearly identifies itself whenever it is used
-     interactively.  Unless explicitly specified when applying the
-     license to the Work, the only applicable Base Interpreter is a
-     `LaTeX-Format' or in the case of files belonging to the 
-     `LaTeX-format' a program implementing the `TeX language'.
- .
- .
- .
- CONDITIONS ON DISTRIBUTION AND MODIFICATION
- ===========================================
- .
- 1.  Activities other than distribution and/or modification of the Work
- are not covered by this license; they are outside its scope.  In
- particular, the act of running the Work is not restricted and no
- requirements are made concerning any offers of support for the Work.
- .
- 2.  You may distribute a complete, unmodified copy of the Work as you
- received it.  Distribution of only part of the Work is considered
- modification of the Work, and no right to distribute such a Derived
- Work may be assumed under the terms of this clause.
- .
- 3.  You may distribute a Compiled Work that has been generated from a
- complete, unmodified copy of the Work as distributed under Clause 2
- above, as long as that Compiled Work is distributed in such a way that
- the recipients may install the Compiled Work on their system exactly
- as it would have been installed if they generated a Compiled Work
- directly from the Work.
- .
- 4.  If you are the Current Maintainer of the Work, you may, without
- restriction, modify the Work, thus creating a Derived Work.  You may
- also distribute the Derived Work without restriction, including
- Compiled Works generated from the Derived Work.  Derived Works
- distributed in this manner by the Current Maintainer are considered to
- be updated versions of the Work.
- .
- 5.  If you are not the Current Maintainer of the Work, you may modify
- your copy of the Work, thus creating a Derived Work based on the Work,
- and compile this Derived Work, thus creating a Compiled Work based on
- the Derived Work.
- .
- 6.  If you are not the Current Maintainer of the Work, you may
- distribute a Derived Work provided the following conditions are met
- for every component of the Work unless that component clearly states
- in the copyright notice that it is exempt from that condition.  Only
- the Current Maintainer is allowed to add such statements of exemption 
- to a component of the Work. 
- .
-   a. If a component of this Derived Work can be a direct replacement
-      for a component of the Work when that component is used with the
-      Base Interpreter, then, wherever this component of the Work
-      identifies itself to the user when used interactively with that
-      Base Interpreter, the replacement component of this Derived Work
-      clearly and unambiguously identifies itself as a modified version
-      of this component to the user when used interactively with that
-      Base Interpreter.
- .
-   b. Every component of the Derived Work contains prominent notices
-      detailing the nature of the changes to that component, or a
-      prominent reference to another file that is distributed as part
-      of the Derived Work and that contains a complete and accurate log
-      of the changes.
- .
-   c. No information in the Derived Work implies that any persons,
-      including (but not limited to) the authors of the original version
-      of the Work, provide any support, including (but not limited to)
-      the reporting and handling of errors, to recipients of the
-      Derived Work unless those persons have stated explicitly that
-      they do provide such support for the Derived Work.
- .
-   d. You distribute at least one of the following with the Derived Work:
- .
-        1. A complete, unmodified copy of the Work; 
-           if your distribution of a modified component is made by
-           offering access to copy the modified component from a
-           designated place, then offering equivalent access to copy
-           the Work from the same or some similar place meets this
-           condition, even though third parties are not compelled to
-           copy the Work along with the modified component;
- .
-        2. Information that is sufficient to obtain a complete,
-           unmodified copy of the Work.
- .
- 7.  If you are not the Current Maintainer of the Work, you may
- distribute a Compiled Work generated from a Derived Work, as long as
- the Derived Work is distributed to all recipients of the Compiled
- Work, and as long as the conditions of Clause 6, above, are met with
- regard to the Derived Work.
- .
- 8.  The conditions above are not intended to prohibit, and hence do not
- apply to, the modification, by any method, of any component so that it
- becomes identical to an updated version of that component of the Work as
- it is distributed by the Current Maintainer under Clause 4, above.
- .
- 9.  Distribution of the Work or any Derived Work in an alternative
- format, where the Work or that Derived Work (in whole or in part) is
- then produced by applying some process to that format, does not relax or
- nullify any sections of this license as they pertain to the results of
- applying that process.
- .
- 10. a. A Derived Work may be distributed under a different license
-        provided that license itself honors the conditions listed in
-        Clause 6 above, in regard to the Work, though it does not have
-        to honor the rest of the conditions in this license.
- .
-     b. If a Derived Work is distributed under a different license, that
-        Derived Work must provide sufficient documentation as part of
-        itself to allow each recipient of that Derived Work to honor the 
-        restrictions in Clause 6 above, concerning changes from the Work.
- .
- 11. This license places no restrictions on works that are unrelated to
- the Work, nor does this license place any restrictions on aggregating
- such works with the Work by any means.
- .
- 12.  Nothing in this license is intended to, or may be used to, prevent
- complete compliance by all parties with all applicable laws.
- .
- .
- NO WARRANTY
- ===========
- .
- There is no warranty for the Work.  Except when otherwise stated in
- writing, the Copyright Holder provides the Work `as is', without
- warranty of any kind, either expressed or implied, including, but not
- limited to, the implied warranties of merchantability and fitness for a
- particular purpose.  The entire risk as to the quality and performance
- of the Work is with you.  Should the Work prove defective, you assume
- the cost of all necessary servicing, repair, or correction.
- .
- In no event unless required by applicable law or agreed to in writing
- will The Copyright Holder, or any author named in the components of the
- Work, or any other party who may distribute and/or modify the Work as
- permitted above, be liable to you for damages, including any general,
- special, incidental or consequential damages arising out of any use of
- the Work or out of inability to use the Work (including, but not limited
- to, loss of data, data being rendered inaccurate, or losses sustained by
- anyone as a result of any failure of the Work to operate with any other
- programs), even if the Copyright Holder or said author or said other
- party has been advised of the possibility of such damages.
- .
- .
- MAINTENANCE OF THE WORK
- =======================
- .
- The Work has the status `author-maintained' if the Copyright Holder
- explicitly and prominently states near the primary copyright notice in
- the Work that the Work can only be maintained by the Copyright Holder
- or simply that it is `author-maintained'.
- .
- The Work has the status `maintained' if there is a Current Maintainer
- who has indicated in the Work that they are willing to receive error
- reports for the Work (for example, by supplying a valid e-mail
- address). It is not required for the Current Maintainer to acknowledge
- or act upon these error reports.
- .
- The Work changes from status `maintained' to `unmaintained' if there
- is no Current Maintainer, or the person stated to be Current
- Maintainer of the work cannot be reached through the indicated means
- of communication for a period of six months, and there are no other
- significant signs of active maintenance.
- .
- You can become the Current Maintainer of the Work by agreement with
- any existing Current Maintainer to take over this role.
- .
- If the Work is unmaintained, you can become the Current Maintainer of
- the Work through the following steps:
- .
-  1.  Make a reasonable attempt to trace the Current Maintainer (and
-      the Copyright Holder, if the two differ) through the means of
-      an Internet or similar search.
- .
-  2.  If this search is successful, then enquire whether the Work
-      is still maintained.
- .
-   a. If it is being maintained, then ask the Current Maintainer
-      to update their communication data within one month.
- .
-   b. If the search is unsuccessful or no action to resume active
-      maintenance is taken by the Current Maintainer, then announce
-      within the pertinent community your intention to take over
-      maintenance.  (If the Work is a LaTeX work, this could be
-      done, for example, by posting to comp.text.tex.)
- .
-  3a. If the Current Maintainer is reachable and agrees to pass
-      maintenance of the Work to you, then this takes effect
-      immediately upon announcement.
- .
-   b. If the Current Maintainer is not reachable and the Copyright
-      Holder agrees that maintenance of the Work be passed to you,
-      then this takes effect immediately upon announcement.  
- .
-  4.  If you make an `intention announcement' as described in 2b. above
-      and after three months your intention is challenged neither by
-      the Current Maintainer nor by the Copyright Holder nor by other
-      people, then you may arrange for the Work to be changed so as
-      to name you as the (new) Current Maintainer.
- .
-  5.  If the previously unreachable Current Maintainer becomes
-      reachable once more within three months of a change completed
-      under the terms of 3b) or 4), then that Current Maintainer must
-      become or remain the Current Maintainer upon request provided
-      they then update their communication data within one month.
- .
- A change in the Current Maintainer does not, of itself, alter the fact
- that the Work is distributed under the LPPL license.
- .
- If you become the Current Maintainer of the Work, you should
- immediately provide, within the Work, a prominent and unambiguous
- statement of your status as Current Maintainer.  You should also
- announce your new status to the same pertinent community as
- in 2b) above.
- .
- .
- WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
- ======================================================
- .
- This section contains important instructions, examples, and
- recommendations for authors who are considering distributing their
- works under this license.  These authors are addressed as `you' in
- this section.
- .
- Choosing This License or Another License
- ----------------------------------------
- .
- If for any part of your work you want or need to use *distribution*
- conditions that differ significantly from those in this license, then
- do not refer to this license anywhere in your work but, instead,
- distribute your work under a different license.  You may use the text
- of this license as a model for your own license, but your license
- should not refer to the LPPL or otherwise give the impression that
- your work is distributed under the LPPL.
- .
- The document `modguide.tex' in the base LaTeX distribution explains
- the motivation behind the conditions of this license.  It explains,
- for example, why distributing LaTeX under the GNU General Public
- License (GPL) was considered inappropriate.  Even if your work is
- unrelated to LaTeX, the discussion in `modguide.tex' may still be
- relevant, and authors intending to distribute their works under any
- license are encouraged to read it.
- .
- A Recommendation on Modification Without Distribution
- -----------------------------------------------------
- .
- It is wise never to modify a component of the Work, even for your own
- personal use, without also meeting the above conditions for
- distributing the modified component.  While you might intend that such
- modifications will never be distributed, often this will happen by
- accident -- you may forget that you have modified that component; or
- it may not occur to you when allowing others to access the modified
- version that you are thus distributing it and violating the conditions
- of this license in ways that could have legal implications and, worse,
- cause problems for the community.  It is therefore usually in your
- best interest to keep your copy of the Work identical with the public
- one.  Many works provide ways to control the behavior of that work
- without altering any of its licensed components.
- .
- How to Use This License
- -----------------------
- .
- To use this license, place in each of the components of your work both
- an explicit copyright notice including your name and the year the work
- was authored and/or last substantially modified.  Include also a
- statement that the distribution and/or modification of that
- component is constrained by the conditions in this license.
- .
- Here is an example of such a notice and statement:
- .
-   %% pig.dtx
-   %% Copyright 2005 M. Y. Name
-   %
-   % This work may be distributed and/or modified under the
-   % conditions of the LaTeX Project Public License, either version 1.3
-   % of this license or (at your option) any later version.
-   % The latest version of this license is in
-   %   http://www.latex-project.org/lppl.txt
-   % and version 1.3 or later is part of all distributions of LaTeX
-   % version 2005/12/01 or later.
-   %
-   % This work has the LPPL maintenance status `maintained'.
-   % 
-   % The Current Maintainer of this work is M. Y. Name.
-   %
-   % This work consists of the files pig.dtx and pig.ins
-   % and the derived file pig.sty.
- .
- Given such a notice and statement in a file, the conditions
- given in this license document would apply, with the `Work' referring
- to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
- generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
- referring to any `LaTeX-Format', and both `Copyright Holder' and
- `Current Maintainer' referring to the person `M. Y. Name'.
- .
- If you do not want the Maintenance section of LPPL to apply to your
- Work, change `maintained' above into `author-maintained'.  
- However, we recommend that you use `maintained', as the Maintenance
- section was added in order to ensure that your Work remains useful to
- the community even when you can no longer maintain and support it
- yourself.
- .
- Derived Works That Are Not Replacements
- ---------------------------------------
- .
- Several clauses of the LPPL specify means to provide reliability and
- stability for the user community. They therefore concern themselves
- with the case that a Derived Work is intended to be used as a
- (compatible or incompatible) replacement of the original Work. If
- this is not the case (e.g., if a few lines of code are reused for a
- completely different task), then clauses 6b and 6d shall not apply.
- .
- .
- Important Recommendations
- -------------------------
- .
-  Defining What Constitutes the Work
- .
-    The LPPL requires that distributions of the Work contain all the
-    files of the Work.  It is therefore important that you provide a
-    way for the licensee to determine which files constitute the Work.
-    This could, for example, be achieved by explicitly listing all the
-    files of the Work near the copyright notice of each file or by
-    using a line such as:
- .
-     % This work consists of all files listed in manifest.txt.
- .
-    in that place.  In the absence of an unequivocal list it might be
-    impossible for the licensee to determine what is considered by you
-    to comprise the Work and, in such a case, the licensee would be
-    entitled to make reasonable conjectures as to which files comprise
-    the Work.
-Comment: The file is LPPL version 1 or later.  Since the license at the
- spceified location is now 1.3c we take "or later" option.
-
 Files: debian/*
 Copyright: 2014 Brad Chapman <chapmanb at 50mail.com>
 License: MIT
diff --git a/debian/createmanpages b/debian/createmanpages
new file mode 100755
index 0000000..edc2633
--- /dev/null
+++ b/debian/createmanpages
@@ -0,0 +1,28 @@
+#!/bin/sh
+MANDIR=debian
+mkdir -p $MANDIR
+
+VERSION=`dpkg-parsechangelog | awk '/^Version:/ {print $2}' | sed -e 's/^[0-9]*://' -e 's/-.*//' -e 's/[+~]dfsg$//'`
+
+AUTHOR=".SH AUTHOR\nThis manpage was written by $DEBFULLNAME for the Debian distribution and
+can be used for any other usage of the program.
+"
+
+progname=bamleftalign
+help2man --no-info --no-discard-stderr  \
+         --name='<optional description of the program>' \
+            --version-string="$VERSION" ${progname} > $MANDIR/${progname}.1
+echo $AUTHOR >> $MANDIR/${progname}.1
+
+progname=freebayes
+help2man --no-info --no-discard-stderr --help-option=" " \
+         --name='<optional description of the program>' \
+            --version-string="$VERSION" ${progname} > $MANDIR/${progname}.1
+echo $AUTHOR >> $MANDIR/${progname}.1
+
+cat <<EOT
+Please enhance the help2man output.
+The following web page might be helpful in doing so:
+    http://liw.fi/manpages/
+EOT
+
diff --git a/debian/freebayes.1 b/debian/freebayes.1
deleted file mode 100644
index 70b8157..0000000
--- a/debian/freebayes.1
+++ /dev/null
@@ -1,459 +0,0 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.47.4.
-.TH FREEBAYES "1" "January 2017" "freebayes 1.0.2" "User Commands"
-.SH NAME
-freebayes \- Bayesian haplotype\-based polymorphism discovery
-.SH SYNOPSIS
-.B  freebayes
-\fB\-f\fR [REFERENCE] [OPTIONS] [BAM FILES] >[OUTPUT]
-.SH DESCRIPTION
-FreeBayes is a Bayesian genetic variant detector designed to find
-small polymorphisms, specifically SNPs (single-nucleotide
-polymorphisms), indels (insertions and deletions), MNPs
-(multi-nucleotide polymorphisms), and complex events (composite
-insertion and substitution events) smaller than the length of a
-short-read sequencing alignment.
-.SS Overview:
-To call variants from aligned short\-read sequencing data, supply BAM files and
-a reference.  FreeBayes will provide VCF output on standard out describing SNPs,
-indels, and complex variants in samples in the input alignments.
-.PP
-By default, FreeBayes will consider variants supported by at least 2
-observations in a single sample (\fB\-C\fR) and also by at least 20% of the reads from
-a single sample (\fB\-F\fR).  These settings are suitable to low to high depth
-sequencing in haploid and diploid samples, but users working with polyploid or
-pooled samples may wish to adjust them depending on the characteristics of
-their sequencing data.
-.IP
-FreeBayes is capable of calling variant haplotypes shorter than a read length
-where multiple polymorphisms segregate on the same read.  The maximum distance
-between polymorphisms phased in this way is determined by the
-\fB\-\-max\-complex\-gap\fR, which defaults to 3bp.  In practice, this can comfortably be
-set to half the read length.
-.IP
-Ploidy may be set to any level (\fB\-p\fR), but by default all samples are assumed to
-be diploid.  FreeBayes can model per\-sample and per\-region variation in
-copy\-number (\fB\-A\fR) using a copy\-number variation map.
-.IP
-FreeBayes can act as a frequency\-based pooled caller and describe variants
-and haplotypes in terms of observation frequency rather than called genotypes.
-To do so, use \fB\-\-pooled\-continuous\fR and set input filters to a suitable level.
-Allele observation counts will be described by AO and RO fields in the VCF output.
-.SH Examples
-.TP
-# call variants assuming a diploid sample
-freebayes \fB\-f\fR ref.fa aln.bam >var.vcf
-.TP
-# call variants assuming a diploid sample, providing gVCF output
-freebayes \fB\-f\fR ref.fa \fB\-\-gvcf\fR aln.bam >var.gvcf
-.TP
-# require at least 5 supporting observations to consider a variant
-freebayes \fB\-f\fR ref.fa \fB\-C\fR 5 aln.bam >var.vcf
-.TP
-# use a different ploidy
-freebayes \fB\-f\fR ref.fa \fB\-p\fR 4 aln.bam >var.vcf
-.TP
-# assume a pooled sample with a known number of genome copies
-freebayes \fB\-f\fR ref.fa \fB\-p\fR 20 \fB\-\-pooled\-discrete\fR aln.bam >var.vcf
-.TP
-# generate frequency\-based calls for all variants passing input thresholds
-freebayes \fB\-f\fR ref.fa \fB\-F\fR 0.01 \fB\-C\fR 1 \fB\-\-pooled\-continuous\fR aln.bam >var.vcf
-.TP
-# use an input VCF (bgzipped + tabix indexed) to force calls at particular alleles
-freebayes \fB\-f\fR ref.fa \-@ in.vcf.gz aln.bam >var.vcf
-.TP
-# generate long haplotype calls over known variants
-freebayes \fB\-f\fR ref.fa \fB\-\-haplotype\-basis\-alleles\fR in.vcf.gz \fB\-\-haplotype\-length\fR 50 aln.bam
-.TP
-# naive variant calling: simply annotate observation counts of SNPs and indels
-freebayes \fB\-f\fR ref.fa \fB\-\-haplotype\-length\fR 0 \fB\-\-min\-alternate\-count\fR 1 \fB\-\-min\-alternate\-fraction\fR 0 \fB\-\-pooled\-continuous\fR \fB\-\-report\-monomorphic\fR >var.vcf
-.SH OPTIONS
-.TP
-\fB\-h\fR \fB\-\-help\fR
-Prints this help dialog.
-.TP
-\fB\-\-version\fR
-Prints the release number and the git commit id.
-.SS input
-.TP
-\fB\-b\fR \fB\-\-bam\fR FILE
-Add FILE to the set of BAM files to be analyzed.
-.HP
-\fB\-L\fR \fB\-\-bam\-list\fR FILE
-.IP
-A file containing a list of BAM files to be analyzed.
-.TP
-\fB\-c\fR \fB\-\-stdin\fR
-Read BAM input on stdin.
-.HP
-\fB\-f\fR \fB\-\-fasta\-reference\fR FILE
-.IP
-Use FILE as the reference sequence for analysis.
-An index file (FILE.fai) will be created if none exists.
-If neither \fB\-\-targets\fR nor \fB\-\-region\fR are specified, FreeBayes
-will analyze every position in this reference.
-.HP
-\fB\-t\fR \fB\-\-targets\fR FILE
-.IP
-Limit analysis to targets listed in the BED\-format FILE.
-.HP
-\fB\-r\fR \fB\-\-region\fR <chrom>:<start_position>\-<end_position>
-.IP
-Limit analysis to the specified region, 0\-base coordinates,
-end_position not included (same as BED format).
-Either '\-' or '..' maybe used as a separator.
-.HP
-\fB\-s\fR \fB\-\-samples\fR FILE
-.IP
-Limit analysis to samples listed (one per line) in the FILE.
-By default FreeBayes will analyze all samples in its input
-BAM files.
-.HP
-\fB\-\-populations\fR FILE
-.IP
-Each line of FILE should list a sample and a population which
-it is part of.  The population\-based bayesian inference model
-will then be partitioned on the basis of the populations.
-.HP
-\fB\-A\fR \fB\-\-cnv\-map\fR FILE
-.IP
-Read a copy number map from the BED file FILE, which has
-the format:
-.IP
-reference sequence, start, end, sample name, copy number
-.IP
-\&... for each region in each sample which does not have the
-default copy number as set by \fB\-\-ploidy\fR.
-.SS output
-.TP
-\fB\-v\fR \fB\-\-vcf\fR FILE
-Output VCF\-format results to FILE. (default: stdout)
-.HP
-\fB\-\-gvcf\fR
-.IP
-Write gVCF output, which indicates coverage in uncalled regions.
-.HP
-\fB\-\-gvcf\-chunk\fR NUM
-.IP
-When writing gVCF output emit a record for every NUM bases.
-.HP
-\-@ \fB\-\-variant\-input\fR VCF
-.IP
-Use variants reported in VCF file as input to the algorithm.
-Variants in this file will included in the output even if
-there is not enough support in the data to pass input filters.
-.HP
-\fB\-l\fR \fB\-\-only\-use\-input\-alleles\fR
-.IP
-Only provide variant calls and genotype likelihoods for sites
-and alleles which are provided in the VCF input, and provide
-output in the VCF for all input alleles, not just those which
-have support in the data.
-.HP
-\fB\-\-haplotype\-basis\-alleles\fR VCF
-.IP
-When specified, only variant alleles provided in this input
-VCF will be used for the construction of complex or haplotype
-alleles.
-.HP
-\fB\-\-report\-all\-haplotype\-alleles\fR
-.IP
-At sites where genotypes are made over haplotype alleles,
-provide information about all alleles in output, not only
-those which are called.
-.HP
-\fB\-\-report\-monomorphic\fR
-.IP
-Report even loci which appear to be monomorphic, and report all
-considered alleles, even those which are not in called genotypes.
-Loci which do not have any potential alternates have '.' for ALT.
-.TP
-\fB\-P\fR \fB\-\-pvar\fR N
-Report sites if the probability that there is a polymorphism
-at the site is greater than N.  default: 0.0.  Note that postfiltering is generally recommended over the use of this parameter.
-.SS population model
-.TP
-\fB\-T\fR \fB\-\-theta\fR N
-The expected mutation rate or pairwise nucleotide diversity
-among the population under analysis.  This serves as the
-single parameter to the Ewens Sampling Formula prior model
-default: 0.001
-.TP
-\fB\-p\fR \fB\-\-ploidy\fR N
-Sets the default ploidy for the analysis to N.  default: 2
-.HP
-\fB\-J\fR \fB\-\-pooled\-discrete\fR
-.IP
-Assume that samples result from pooled sequencing.
-Model pooled samples using discrete genotypes across pools.
-When using this flag, set \fB\-\-ploidy\fR to the number of
-alleles in each sample or use the \fB\-\-cnv\-map\fR to define
-per\-sample ploidy.
-.HP
-\fB\-K\fR \fB\-\-pooled\-continuous\fR
-.IP
-Output all alleles which pass input filters, regardles of
-genotyping outcome or model.
-.SS reference allele
-.HP
-\fB\-Z\fR \fB\-\-use\-reference\-allele\fR
-.IP
-This flag includes the reference allele in the analysis as
-if it is another sample from the same population.
-.HP
-\fB\-\-reference\-quality\fR MQ,BQ
-.IP
-Assign mapping quality of MQ to the reference allele at each
-site and base quality of BQ.  default: 100,60
-.SS allele scope
-.TP
-\fB\-I\fR \fB\-\-no\-snps\fR
-Ignore SNP alleles.
-.TP
-\fB\-i\fR \fB\-\-no\-indels\fR
-Ignore insertion and deletion alleles.
-.TP
-\fB\-X\fR \fB\-\-no\-mnps\fR
-Ignore multi\-nuceotide polymorphisms, MNPs.
-.HP
-\fB\-u\fR \fB\-\-no\-complex\fR Ignore complex events (composites of other classes).
-.HP
-\fB\-n\fR \fB\-\-use\-best\-n\-alleles\fR N
-.IP
-Evaluate only the best N SNP alleles, ranked by sum of
-supporting quality scores.  (Set to 0 to use all; default: all)
-.HP
-\fB\-E\fR \fB\-\-max\-complex\-gap\fR N
-.HP
-\fB\-\-haplotype\-length\fR N
-.IP
-Allow haplotype calls with contiguous embedded matches of up
-to this length.  (default: 3)
-.HP
-\fB\-\-min\-repeat\-size\fR N
-.IP
-When assembling observations across repeats, require the total repeat
-length at least this many bp.  (default: 5)
-.HP
-\fB\-\-min\-repeat\-entropy\fR N
-.IP
-To detect interrupted repeats, build across sequence until it has
-entropy > N bits per bp.  (default: 0, off)
-.HP
-\fB\-\-no\-partial\-observations\fR
-.IP
-Exclude observations which do not fully span the dynamically\-determined
-detection window.  (default, use all observations, dividing partial
-support across matching haplotypes when generating haplotypes.)
-.SS indel realignment
-.HP
-\fB\-O\fR \fB\-\-dont\-left\-align\-indels\fR
-.IP
-Turn off left\-alignment of indels, which is enabled by default.
-.SS input filters
-.HP
-\fB\-4\fR \fB\-\-use\-duplicate\-reads\fR
-.IP
-Include duplicate\-marked alignments in the analysis.
-default: exclude duplicates marked as such in alignments
-.HP
-\fB\-m\fR \fB\-\-min\-mapping\-quality\fR Q
-.IP
-Exclude alignments from analysis if they have a mapping
-quality less than Q.  default: 1
-.HP
-\fB\-q\fR \fB\-\-min\-base\-quality\fR Q
-.IP
-Exclude alleles from analysis if their supporting base
-quality is less than Q.  default: 0
-.HP
-\fB\-R\fR \fB\-\-min\-supporting\-allele\-qsum\fR Q
-.IP
-Consider any allele in which the sum of qualities of supporting
-observations is at least Q.  default: 0
-.HP
-\fB\-Y\fR \fB\-\-min\-supporting\-mapping\-qsum\fR Q
-.IP
-Consider any allele in which and the sum of mapping qualities of
-supporting reads is at least Q.  default: 0
-.HP
-\fB\-Q\fR \fB\-\-mismatch\-base\-quality\-threshold\fR Q
-.IP
-Count mismatches toward \fB\-\-read\-mismatch\-limit\fR if the base
-quality of the mismatch is >= Q.  default: 10
-.HP
-\fB\-U\fR \fB\-\-read\-mismatch\-limit\fR N
-.IP
-Exclude reads with more than N mismatches where each mismatch
-has base quality >= mismatch\-base\-quality\-threshold.
-default: ~unbounded
-.HP
-\fB\-z\fR \fB\-\-read\-max\-mismatch\-fraction\fR N
-.IP
-Exclude reads with more than N [0,1] fraction of mismatches where
-each mismatch has base quality >= mismatch\-base\-quality\-threshold
-default: 1.0
-.HP
-\-$ \fB\-\-read\-snp\-limit\fR N
-.IP
-Exclude reads with more than N base mismatches, ignoring gaps
-with quality >= mismatch\-base\-quality\-threshold.
-default: ~unbounded
-.HP
-\fB\-e\fR \fB\-\-read\-indel\-limit\fR N
-.IP
-Exclude reads with more than N separate gaps.
-default: ~unbounded
-.TP
-\fB\-0\fR \fB\-\-standard\-filters\fR
-Use stringent input base and mapping quality filters
-.IP
-Equivalent to \fB\-m\fR 30 \fB\-q\fR 20 \fB\-R\fR 0 \fB\-S\fR 0
-.HP
-\fB\-F\fR \fB\-\-min\-alternate\-fraction\fR N
-.IP
-Require at least this fraction of observations supporting
-an alternate allele within a single individual in the
-in order to evaluate the position.  default: 0.2
-.HP
-\fB\-C\fR \fB\-\-min\-alternate\-count\fR N
-.IP
-Require at least this count of observations supporting
-an alternate allele within a single individual in order
-to evaluate the position.  default: 2
-.HP
-\fB\-3\fR \fB\-\-min\-alternate\-qsum\fR N
-.IP
-Require at least this sum of quality of observations supporting
-an alternate allele within a single individual in order
-to evaluate the position.  default: 0
-.HP
-\fB\-G\fR \fB\-\-min\-alternate\-total\fR N
-.IP
-Require at least this count of observations supporting
-an alternate allele within the total population in order
-to use the allele in analysis.  default: 1
-.HP
-\fB\-\-min\-coverage\fR N
-.IP
-Require at least this coverage to process a site. default: 0
-.HP
-\fB\-\-max\-coverage\fR N
-.IP
-Do not process sites with greater than this coverage. default: no limit
-.SS population priors
-.HP
-\fB\-k\fR \fB\-\-no\-population\-priors\fR
-.IP
-Equivalent to \fB\-\-pooled\-discrete\fR \fB\-\-hwe\-priors\-off\fR and removal of
-Ewens Sampling Formula component of priors.
-.SS mappability priors
-.HP
-\fB\-w\fR \fB\-\-hwe\-priors\-off\fR
-.IP
-Disable estimation of the probability of the combination
-arising under HWE given the allele frequency as estimated
-by observation frequency.
-.HP
-\fB\-V\fR \fB\-\-binomial\-obs\-priors\-off\fR
-.IP
-Disable incorporation of prior expectations about observations.
-Uses read placement probability, strand balance probability,
-and read position (5'\-3') probability.
-.HP
-\fB\-a\fR \fB\-\-allele\-balance\-priors\-off\fR
-.IP
-Disable use of aggregate probability of observation balance between alleles
-as a component of the priors.
-.SS genotype likelihoods
-.HP
-\fB\-\-observation\-bias\fR FILE
-.IP
-Read length\-dependent allele observation biases from FILE.
-The format is [length] [alignment efficiency relative to reference]
-where the efficiency is 1 if there is no relative observation bias.
-.HP
-\fB\-\-base\-quality\-cap\fR Q
-.IP
-Limit estimated observation quality by capping base quality at Q.
-.HP
-\fB\-\-prob\-contamination\fR F
-.TP
-An estimate of contamination to use for all samples.
-default: 10e\-9
-.TP
-\fB\-\-legacy\-gls\fR
-Use legacy (polybayes equivalent) genotype likelihood calculations
-.HP
-\fB\-\-contamination\-estimates\fR FILE
-.IP
-A file containing per\-sample estimates of contamination, such as
-those generated by VerifyBamID.  The format should be:
-.IP
-sample p(read=R|genotype=AR) p(read=A|genotype=AA)
-.IP
-Sample '*' can be used to set default contamination estimates.
-.SS algorithmic features
-.HP
-\fB\-\-report\-genotype\-likelihood\-max\fR
-.IP
-Report genotypes using the maximum\-likelihood estimate provided
-from genotype likelihoods.
-.HP
-\fB\-B\fR \fB\-\-genotyping\-max\-iterations\fR N
-.IP
-Iterate no more than N times during genotyping step. default: 1000.
-.HP
-\fB\-\-genotyping\-max\-banddepth\fR N
-.IP
-Integrate no deeper than the Nth best genotype by likelihood when
-genotyping. default: 6.
-.HP
-\fB\-W\fR \fB\-\-posterior\-integration\-limits\fR N,M
-.IP
-Integrate all genotype combinations in our posterior space
-which include no more than N samples with their Mth best
-data likelihood. default: 1,3.
-.HP
-\fB\-N\fR \fB\-\-exclude\-unobserved\-genotypes\fR
-.IP
-Skip sample genotypings for which the sample has no supporting reads.
-.HP
-\fB\-S\fR \fB\-\-genotype\-variant\-threshold\fR N
-.IP
-Limit posterior integration to samples where the second\-best
-genotype likelihood is no more than log(N) from the highest
-genotype likelihood for the sample.  default: ~unbounded
-.HP
-\fB\-j\fR \fB\-\-use\-mapping\-quality\fR
-.IP
-Use mapping quality of alleles when calculating data likelihoods.
-.HP
-\fB\-H\fR \fB\-\-harmonic\-indel\-quality\fR
-.IP
-Use a weighted sum of base qualities around an indel, scaled by the
-distance from the indel.  By default use a minimum BQ in flanking sequence.
-.HP
-\fB\-D\fR \fB\-\-read\-dependence\-factor\fR N
-.IP
-Incorporate non\-independence of reads by scaling successive
-observations by this factor during data likelihood
-calculations.  default: 0.9
-.HP
-\fB\-=\fR \fB\-\-genotype\-qualities\fR
-.IP
-Calculate the marginal probability of genotypes and report as GQ in
-each sample field in the VCF output.
-.SS debugging
-.TP
-\fB\-d\fR \fB\-\-debug\fR
-Print debugging output.
-.TP
-\fB\-dd\fR
-Print more verbose debugging output (requires "make DEBUG")
-.SH SEE ALSO
-"Haplotype\-based variant detection from short\-read sequencing"
-arXiv:1207.3907 (http://arxiv.org/abs/1207.3907)
-.SH AUTHOR
-Erik Garrison <erik.garrison at bc.edu>, Marth Lab, Boston College, 2010\-2014, Gabor Marth
-.pp
-This manpage was written by Andreas Tille for the Debian distribution and can be used for any other usage of the program.
diff --git a/debian/manpages b/debian/manpages
deleted file mode 100644
index 0f65186..0000000
--- a/debian/manpages
+++ /dev/null
@@ -1 +0,0 @@
-debian/*.1
diff --git a/debian/patches/fix_test.patch b/debian/patches/fix_test.patch
index a5af80c..302ed80 100644
--- a/debian/patches/fix_test.patch
+++ b/debian/patches/fix_test.patch
@@ -13,3 +13,11 @@ Description: vcflib is in a different package - do not test this
  	prove -v t
  
  $(freebayes):
+--- a/scripts/freebayes-parallel
++++ b/scripts/freebayes-parallel
+@@ -37,4 +37,4 @@ command=("freebayes" "$@")
+ # iterate over regions using gnu parallel to dispatch jobs
+ cat "$regionsfile" | parallel -k -j "$ncpus" "${command[@]}" --region {}
+ ) | ../vcflib/scripts/vcffirstheader \
+-    | ../vcflib/bin/vcfstreamsort -w 1000 | vcfuniq # remove duplicates at region edges
++    | vcfstreamsort -w 1000 | vcfuniq # remove duplicates at region edges
diff --git a/debian/patches/series b/debian/patches/series
index e9ae68a..3052e50 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,6 @@
 use_debian_packaged_bamtools.patch
 use_debian_packaged_vcflib.patch
+use_debian_packaged_seqlib.patch
+use_debian_packaged_libjsoncpp.patch
 fix_test.patch
+vcffirstheader.patch
diff --git a/debian/patches/use_debian_packaged_bamtools.patch b/debian/patches/use_debian_packaged_bamtools.patch
index 23f035e..9155580 100644
--- a/debian/patches/use_debian_packaged_bamtools.patch
+++ b/debian/patches/use_debian_packaged_bamtools.patch
@@ -4,83 +4,83 @@ Description: Use Debian packaged bamtools
 
 --- a/src/Makefile
 +++ b/src/Makefile
-@@ -12,11 +12,10 @@ C=gcc
+@@ -12,14 +12,13 @@ C=gcc
  CFLAGS=-O3 -D_FILE_OFFSET_BITS=64 -g
  #CFLAGS=-O3 -static -D VERBOSE_DEBUG  # enables verbose debugging via --debug2
  
 -BAMTOOLS_ROOT=../bamtools
+ SEQLIB_ROOT=../SeqLib
  VCFLIB_ROOT=../vcflib
+ TABIX_ROOT=$(VCFLIB_ROOT)/tabixpp
+ HTSLIB_ROOT=$(TABIX_ROOT)/htslib
  
--LIBS = -L./ -L$(VCFLIB_ROOT)/tabixpp/ -L$(BAMTOOLS_ROOT)/lib -ltabix -lz -lm
--INCLUDE = -I$(BAMTOOLS_ROOT)/src -I../ttmath -I$(VCFLIB_ROOT)/src -I$(VCFLIB_ROOT)/
-+LIBS = -L./ -L$(VCFLIB_ROOT)/tabixpp/ -lbamtools -ltabixpp -lz -lm
-+INCLUDE = -I/usr/include/bamtools -I../ttmath -I$(VCFLIB_ROOT)/src -I$(VCFLIB_ROOT)/
+-LIBS = -lz -lm -lpthread
+-INCLUDE = -I../ttmath -I$(BAMTOOLS_ROOT)/src/ -I$(VCFLIB_ROOT)/src/ -I$(TABIX_ROOT)/ -I$(VCFLIB_ROOT)/smithwaterman/ -I$(VCFLIB_ROOT)/multichoose/ -I$(VCFLIB_ROOT)/filevercmp/ -I$(HTSLIB_ROOT) -I$(SEQLIB_ROOT) -I$(SEQLIB_ROOT)/htslib
++LIBS = -lbamtools -ltabixpp -lz -lm -lpthread
++INCLUDE = -I../ttmath  -I/usr/include/bamtools -I$(VCFLIB_ROOT)/src/ -I$(TABIX_ROOT)/ -I$(VCFLIB_ROOT)/smithwaterman/ -I$(VCFLIB_ROOT)/multichoose/ -I$(VCFLIB_ROOT)/filevercmp/ -I$(HTSLIB_ROOT) -I$(SEQLIB_ROOT) -I$(SEQLIB_ROOT)/htslib
  
  all: autoversion ../bin/freebayes ../bin/bamleftalign
  
-@@ -34,10 +33,6 @@ gprof:
+@@ -37,9 +36,6 @@ gprof:
  
  .PHONY: all static debug profiling gprof
  
 -# builds bamtools static lib, and copies into root
 -$(BAMTOOLS_ROOT)/lib/libbamtools.a:
 -	cd $(BAMTOOLS_ROOT) && mkdir -p build && cd build && cmake .. && $(MAKE)
--
+ $(HTSLIB_ROOT)/libhts.a:
+ 	cd $(HTSLIB_ROOT) && make
  
- OBJECTS=BedReader.o \
- 		CNV.o \
-@@ -70,8 +65,7 @@ OBJECTS=BedReader.o \
- 		../vcflib/smithwaterman/LeftAlign.o \
+@@ -78,7 +74,6 @@ OBJECTS=BedReader.o \
  		../vcflib/smithwaterman/Repeats.o \
  		../vcflib/smithwaterman/IndelAllele.o \
--		Variant.o \
--		$(BAMTOOLS_ROOT)/lib/libbamtools.a
-+		Variant.o 
- 
- HEADERS=multichoose.h version_git.h
- 
-@@ -86,10 +80,10 @@ alleles ../bin/alleles: alleles.o $(OBJE
+ 		Variant.o \
+-		$(BAMTOOLS_ROOT)/lib/libbamtools.a \
+ 			$(SEQLIB_ROOT)/src/libseqlib.a	\
+ 			$(SEQLIB_ROOT)/bwa/libbwa.a	\
+ 			$(SEQLIB_ROOT)/fermi-lite/libfml.a	\
+@@ -97,10 +92,10 @@ alleles ../bin/alleles: alleles.o $(OBJE
  dummy ../bin/dummy: dummy.o $(OBJECTS) $(HEADERS)
  	$(CXX) $(CFLAGS) $(INCLUDE) dummy.o $(OBJECTS) -o ../bin/dummy $(LIBS)
  
--bamleftalign ../bin/bamleftalign: $(BAMTOOLS_ROOT)/lib/libbamtools.a bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o
--	$(CXX) $(CFLAGS) $(INCLUDE) bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o $(BAMTOOLS_ROOT)/lib/libbamtools.a -o ../bin/bamleftalign $(LIBS)
-+bamleftalign ../bin/bamleftalign: bamleftalign.o Fasta.o
-+	$(CXX) $(CFLAGS) $(INCLUDE) bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o -o ../bin/bamleftalign -lbamtools
+-bamleftalign ../bin/bamleftalign: $(BAMTOOLS_ROOT)/lib/libbamtools.a $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o
+-	$(CXX) $(CFLAGS) $(INCLUDE) bamleftalign.o Fasta.o Utility.o LeftAlign.o IndelAllele.o split.o $(BAMTOOLS_ROOT)/lib/libbamtools.a $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a -o ../bin/bamleftalign $(LIBS)
++bamleftalign ../bin/bamleftalign: $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o
++	$(CXX) $(CFLAGS) $(INCLUDE) bamleftalign.o Fasta.o Utility.o LeftAlign.o IndelAllele.o split.o $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a -o ../bin/bamleftalign $(LIBS)
  
--bamfiltertech ../bin/bamfiltertech: $(BAMTOOLS_ROOT)/lib/libbamtools.a bamfiltertech.o $(OBJECTS) $(HEADERS)
-+bamfiltertech ../bin/bamfiltertech: bamfiltertech.o $(OBJECTS) $(HEADERS)
+-bamfiltertech ../bin/bamfiltertech: $(BAMTOOLS_ROOT)/lib/libbamtools.a $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a bamfiltertech.o $(OBJECTS) $(HEADERS)
++bamfiltertech ../bin/bamfiltertech: $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a bamfiltertech.o $(OBJECTS) $(HEADERS)
  	$(CXX) $(CFLAGS) $(INCLUDE) bamfiltertech.o $(OBJECTS) -o ../bin/bamfiltertech $(LIBS)
  
  
-@@ -104,7 +98,7 @@ alleles.o: alleles.cpp AlleleParser.o Al
+@@ -115,7 +110,7 @@ alleles.o: alleles.cpp AlleleParser.o Al
  dummy.o: dummy.cpp AlleleParser.o Allele.o
  	$(CXX) $(CFLAGS) $(INCLUDE) -c dummy.cpp
  
--freebayes.o: freebayes.cpp TryCatch.h $(BAMTOOLS_ROOT)/lib/libbamtools.a
-+freebayes.o: freebayes.cpp TryCatch.h
+-freebayes.o: freebayes.cpp TryCatch.h $(HTSLIB_ROOT)/libhts.a $(BAMTOOLS_ROOT)/lib/libbamtools.a
++freebayes.o: freebayes.cpp TryCatch.h $(HTSLIB_ROOT)/libhts.a
  	$(CXX) $(CFLAGS) $(INCLUDE) -c freebayes.cpp
  
  fastlz.o: fastlz.c fastlz.h
-@@ -125,7 +119,7 @@ Genotype.o: Genotype.cpp Genotype.h Alle
+@@ -136,7 +131,7 @@ Genotype.o: Genotype.cpp Genotype.h Alle
  Ewens.o: Ewens.cpp Ewens.h
  	$(CXX) $(CFLAGS) $(INCLUDE) -c Ewens.cpp
  
--AlleleParser.o: AlleleParser.cpp AlleleParser.h multichoose.h Parameters.h $(BAMTOOLS_ROOT)/lib/libbamtools.a
-+AlleleParser.o: AlleleParser.cpp AlleleParser.h multichoose.h Parameters.h
+-AlleleParser.o: AlleleParser.cpp AlleleParser.h multichoose.h Parameters.h $(BAMTOOLS_ROOT)/lib/libbamtools.a $(HTSLIB_ROOT)/libhts.a
++AlleleParser.o: AlleleParser.cpp AlleleParser.h multichoose.h Parameters.h $(HTSLIB_ROOT)/libhts.a
  	$(CXX) $(CFLAGS) $(INCLUDE) -c AlleleParser.cpp
  
  Utility.o: Utility.cpp Utility.h Sum.h Product.h
-@@ -173,7 +167,7 @@ bamleftalign.o: bamleftalign.cpp LeftAli
+@@ -184,7 +179,7 @@ bamleftalign.o: bamleftalign.cpp LeftAli
  bamfiltertech.o: bamfiltertech.cpp
  	$(CXX) $(CFLAGS) $(INCLUDE) -c bamfiltertech.cpp
  
--LeftAlign.o: LeftAlign.h LeftAlign.cpp $(BAMTOOLS_ROOT)/lib/libbamtools.a
-+LeftAlign.o: LeftAlign.h LeftAlign.cpp
+-LeftAlign.o: LeftAlign.h LeftAlign.cpp $(BAMTOOLS_ROOT)/lib/libbamtools.a $(HTSLIB_ROOT)/libhts.a
++LeftAlign.o: LeftAlign.h LeftAlign.cpp $(HTSLIB_ROOT)/libhts.a
  	$(CXX) $(CFLAGS) $(INCLUDE) -c LeftAlign.cpp
  
  IndelAllele.o: IndelAllele.cpp IndelAllele.h
-@@ -263,6 +257,5 @@ autoversion:
+@@ -275,6 +270,5 @@ autoversion:
  
  clean:
  	rm -rf *.o *.cgh *~ freebayes alleles ../bin/freebayes ../bin/alleles ../vcflib/*.o ../vcflib/tabixpp/*.{o,a}
diff --git a/debian/patches/use_debian_packaged_libjsoncpp.patch b/debian/patches/use_debian_packaged_libjsoncpp.patch
new file mode 100644
index 0000000..5ded25a
--- /dev/null
+++ b/debian/patches/use_debian_packaged_libjsoncpp.patch
@@ -0,0 +1,17 @@
+Author: Andreas Tille <tille at debian.org>
+Last-Update: Wed, 28 May 2014 21:23:38 +0200
+Description: Use Debian packaged libjsoncpp
+
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -12,8 +12,8 @@ C=gcc
+ CFLAGS=-O3 -D_FILE_OFFSET_BITS=64 -g
+ #CFLAGS=-O3 -static -D VERBOSE_DEBUG  # enables verbose debugging via --debug2
+ 
+-LIBS = -lbamtools -ltabixpp -lz -lm -lpthread `pkg-config --libs libvcflib` `pkg-config --libs htslib` `pkg-config --libs libseqlib`
+-INCLUDE = -I../ttmath  -I/usr/include/bamtools `pkg-config --cflags libvcflib` `pkg-config --cflags libseqlib` `pkg-config --cflags htslib`
++LIBS = -lbamtools -ltabixpp -lz -lm -lpthread `pkg-config --libs libvcflib` `pkg-config --libs htslib` `pkg-config --libs libseqlib` `pkg-config --libs jsoncpp`
++INCLUDE = -I../ttmath  -I/usr/include/bamtools `pkg-config --cflags libvcflib` `pkg-config --cflags libseqlib` `pkg-config --cflags htslib` `pkg-config --cflags jsoncpp`
+ 
+ all: autoversion ../bin/freebayes ../bin/bamleftalign
+ 
diff --git a/debian/patches/use_debian_packaged_seqlib.patch b/debian/patches/use_debian_packaged_seqlib.patch
new file mode 100644
index 0000000..9e7a35b
--- /dev/null
+++ b/debian/patches/use_debian_packaged_seqlib.patch
@@ -0,0 +1,87 @@
+Author: Andreas Tille <tille at debian.org>
+Last-Update: Wed, 28 May 2014 21:23:38 +0200
+Description: Use Debian packaged htslib and seqlib
+ seqlib carries another copy of htslib - we replace both
+
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -12,10 +12,8 @@ C=gcc
+ CFLAGS=-O3 -D_FILE_OFFSET_BITS=64 -g
+ #CFLAGS=-O3 -static -D VERBOSE_DEBUG  # enables verbose debugging via --debug2
+ 
+-SEQLIB_ROOT=../SeqLib
+-
+-LIBS = -lbamtools -ltabixpp -lz -lm -lpthread `pkg-config --libs libvcflib`
+-INCLUDE = -I../ttmath  -I/usr/include/bamtools `pkg-config --cflags libvcflib` -I$(SEQLIB_ROOT) -I$(SEQLIB_ROOT)/htslib
++LIBS = -lbamtools -ltabixpp -lz -lm -lpthread `pkg-config --libs libvcflib` `pkg-config --libs htslib` `pkg-config --libs libseqlib`
++INCLUDE = -I../ttmath  -I/usr/include/bamtools `pkg-config --cflags libvcflib` `pkg-config --cflags libseqlib` `pkg-config --cflags htslib`
+ 
+ all: autoversion ../bin/freebayes ../bin/bamleftalign
+ 
+@@ -33,12 +31,6 @@ gprof:
+ 
+ .PHONY: all static debug profiling gprof
+ 
+-$(HTSLIB_ROOT)/libhts.a:
+-	cd $(HTSLIB_ROOT) && make
+-
+-$(SEQLIB_ROOT)/src/libseqlib.a:
+-	cd $(SEQLIB_ROOT) && ./configure && make 
+-
+ OBJECTS=BedReader.o \
+ 		CNV.o \
+ 		fastlz.o \
+@@ -62,11 +54,7 @@ OBJECTS=BedReader.o \
+ 		Bias.o \
+ 		Contamination.o \
+ 		NonCall.o \
+-		SegfaultHandler.o \
+-			$(SEQLIB_ROOT)/src/libseqlib.a	\
+-			$(SEQLIB_ROOT)/bwa/libbwa.a	\
+-			$(SEQLIB_ROOT)/fermi-lite/libfml.a	\
+-			$(SEQLIB_ROOT)/htslib/libhts.a
++		SegfaultHandler.o
+ 
+ HEADERS=multichoose.h version_git.h
+ 
+@@ -81,10 +69,10 @@ alleles ../bin/alleles: alleles.o $(OBJE
+ dummy ../bin/dummy: dummy.o $(OBJECTS) $(HEADERS)
+ 	$(CXX) $(CFLAGS) $(INCLUDE) dummy.o $(OBJECTS) -o ../bin/dummy $(LIBS)
+ 
+-bamleftalign ../bin/bamleftalign: $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o
+-	$(CXX) $(CFLAGS) $(INCLUDE) bamleftalign.o Fasta.o Utility.o LeftAlign.o IndelAllele.o split.o $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a -o ../bin/bamleftalign $(LIBS)
++bamleftalign ../bin/bamleftalign: bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o
++	$(CXX) $(CFLAGS) $(INCLUDE) bamleftalign.o Fasta.o Utility.o LeftAlign.o IndelAllele.o split.o -o ../bin/bamleftalign $(LIBS)
+ 
+-bamfiltertech ../bin/bamfiltertech: $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a bamfiltertech.o $(OBJECTS) $(HEADERS)
++bamfiltertech ../bin/bamfiltertech: bamfiltertech.o $(OBJECTS) $(HEADERS)
+ 	$(CXX) $(CFLAGS) $(INCLUDE) bamfiltertech.o $(OBJECTS) -o ../bin/bamfiltertech $(LIBS)
+ 
+ 
+@@ -99,7 +87,7 @@ alleles.o: alleles.cpp AlleleParser.o Al
+ dummy.o: dummy.cpp AlleleParser.o Allele.o
+ 	$(CXX) $(CFLAGS) $(INCLUDE) -c dummy.cpp
+ 
+-freebayes.o: freebayes.cpp TryCatch.h $(HTSLIB_ROOT)/libhts.a
++freebayes.o: freebayes.cpp TryCatch.h
+ 	$(CXX) $(CFLAGS) $(INCLUDE) -c freebayes.cpp
+ 
+ fastlz.o: fastlz.c fastlz.h
+@@ -120,7 +108,7 @@ Genotype.o: Genotype.cpp Genotype.h Alle
+ Ewens.o: Ewens.cpp Ewens.h
+ 	$(CXX) $(CFLAGS) $(INCLUDE) -c Ewens.cpp
+ 
+-AlleleParser.o: AlleleParser.cpp AlleleParser.h multichoose.h Parameters.h $(HTSLIB_ROOT)/libhts.a
++AlleleParser.o: AlleleParser.cpp AlleleParser.h multichoose.h Parameters.h
+ 	$(CXX) $(CFLAGS) $(INCLUDE) -c AlleleParser.cpp
+ 
+ Utility.o: Utility.cpp Utility.h Sum.h Product.h
+@@ -168,7 +156,7 @@ bamleftalign.o: bamleftalign.cpp LeftAli
+ bamfiltertech.o: bamfiltertech.cpp
+ 	$(CXX) $(CFLAGS) $(INCLUDE) -c bamfiltertech.cpp
+ 
+-LeftAlign.o: LeftAlign.h LeftAlign.cpp $(HTSLIB_ROOT)/libhts.a
++LeftAlign.o: LeftAlign.h LeftAlign.cpp
+ 	$(CXX) $(CFLAGS) $(INCLUDE) -c LeftAlign.cpp
+ 
+ IndelAllele.o: IndelAllele.cpp IndelAllele.h
diff --git a/debian/patches/use_debian_packaged_vcflib.patch b/debian/patches/use_debian_packaged_vcflib.patch
index dd907a8..dc36617 100644
--- a/debian/patches/use_debian_packaged_vcflib.patch
+++ b/debian/patches/use_debian_packaged_vcflib.patch
@@ -4,45 +4,46 @@ Description: vcflib needs to be packaged separately
 
 --- a/src/Makefile
 +++ b/src/Makefile
-@@ -12,10 +12,8 @@ C=gcc
- CFLAGS=-O3 -D_FILE_OFFSET_BITS=64 -g
+@@ -13,12 +13,9 @@ CFLAGS=-O3 -D_FILE_OFFSET_BITS=64 -g
  #CFLAGS=-O3 -static -D VERBOSE_DEBUG  # enables verbose debugging via --debug2
  
+ SEQLIB_ROOT=../SeqLib
 -VCFLIB_ROOT=../vcflib
--
--LIBS = -L./ -L$(VCFLIB_ROOT)/tabixpp/ -lbamtools -ltabixpp -lz -lm
--INCLUDE = -I/usr/include/bamtools -I../ttmath -I$(VCFLIB_ROOT)/src -I$(VCFLIB_ROOT)/
-+LIBS = -lbamtools -ltabixpp -lz -lm -lvcflib `pkg-config --libs libsmithwaterman`
-+INCLUDE = -I/usr/include/bamtools -I../ttmath -I/usr/include/vcflib -I/usr/include/intervaltree `pkg-config --cflags libsmithwaterman` -ldisorder
+-TABIX_ROOT=$(VCFLIB_ROOT)/tabixpp
+-HTSLIB_ROOT=$(TABIX_ROOT)/htslib
+ 
+-LIBS = -lbamtools -ltabixpp -lz -lm -lpthread
+-INCLUDE = -I../ttmath  -I/usr/include/bamtools -I$(VCFLIB_ROOT)/src/ -I$(TABIX_ROOT)/ -I$(VCFLIB_ROOT)/smithwaterman/ -I$(VCFLIB_ROOT)/multichoose/ -I$(VCFLIB_ROOT)/filevercmp/ -I$(HTSLIB_ROOT) -I$(SEQLIB_ROOT) -I$(SEQLIB_ROOT)/htslib
++LIBS = -lbamtools -ltabixpp -lz -lm -lpthread `pkg-config --libs libvcflib`
++INCLUDE = -I../ttmath  -I/usr/include/bamtools `pkg-config --cflags libvcflib` -I$(SEQLIB_ROOT) -I$(SEQLIB_ROOT)/htslib
  
  all: autoversion ../bin/freebayes ../bin/bamleftalign
  
-@@ -57,15 +55,7 @@ OBJECTS=BedReader.o \
- 		Bias.o \
+@@ -66,14 +63,6 @@ OBJECTS=BedReader.o \
  		Contamination.o \
  		NonCall.o \
--		SegfaultHandler.o \
+ 		SegfaultHandler.o \
 -		../vcflib/tabixpp/tabix.o \
--		../vcflib/tabixpp/bgzf.o \
+-		../vcflib/tabixpp/htslib/bgzf.o \
 -		../vcflib/smithwaterman/SmithWatermanGotoh.o \
--		../vcflib/smithwaterman/disorder.c \
+-		../vcflib/smithwaterman/disorder.cpp \
 -		../vcflib/smithwaterman/LeftAlign.o \
 -		../vcflib/smithwaterman/Repeats.o \
 -		../vcflib/smithwaterman/IndelAllele.o \
--		Variant.o 
-+		SegfaultHandler.o
- 
- HEADERS=multichoose.h version_git.h
- 
-@@ -173,17 +163,6 @@ LeftAlign.o: LeftAlign.h LeftAlign.cpp
+-		Variant.o \
+ 			$(SEQLIB_ROOT)/src/libseqlib.a	\
+ 			$(SEQLIB_ROOT)/bwa/libbwa.a	\
+ 			$(SEQLIB_ROOT)/fermi-lite/libfml.a	\
+@@ -185,18 +174,6 @@ LeftAlign.o: LeftAlign.h LeftAlign.cpp $
  IndelAllele.o: IndelAllele.cpp IndelAllele.h
  	$(CXX) $(CFLAGS) $(INCLUDE) -c IndelAllele.cpp
  
 -Variant.o: $(VCFLIB_ROOT)/src/Variant.h $(VCFLIB_ROOT)/src/Variant.cpp
 -	$(CXX) $(CFLAGS) $(INCLUDE) -c $(VCFLIB_ROOT)/src/Variant.cpp
 -
--../vcflib/tabixpp/tabix.o: ../vcflib/tabixpp/tabix.hpp ../vcflib/tabixpp/tabix.cpp
--../vcflib/tabixpp/bgzf.o: ../vcflib/tabixpp/bgzf.c ../vcflib/tabixpp/bgzf.h
+-../vcflib/tabixpp/tabix.o:
+-	cd $(TABIX_ROOT)/ && make
+-../vcflib/tabixpp/htslib/bgzf.o: ../vcflib/tabixpp/htslib/bgzf.c ../vcflib/tabixpp/htslib/htslib/bgzf.h
 -	cd ../vcflib/tabixpp && $(MAKE)
 -
 -../vcflib/smithwaterman/SmithWatermanGotoh.o: ../vcflib/smithwaterman/SmithWatermanGotoh.h ../vcflib/smithwaterman/SmithWatermanGotoh.cpp
@@ -52,11 +53,13 @@ Description: vcflib needs to be packaged separately
  VERSION_FILE=./version_git.h
  RELEASED_VERSION_FILE=./version_release.txt
  
-@@ -257,5 +236,4 @@ autoversion:
+@@ -269,6 +246,5 @@ autoversion:
+ 
  
  clean:
- 	rm -rf *.o *.cgh *~ freebayes alleles ../bin/freebayes ../bin/alleles ../vcflib/*.o ../vcflib/tabixpp/*.{o,a}
+-	rm -rf *.o *.cgh *~ freebayes alleles ../bin/freebayes ../bin/alleles ../vcflib/*.o ../vcflib/tabixpp/*.{o,a}
 -	cd ../vcflib/smithwaterman && make clean
++	rm -rf *.o *.cgh *~ freebayes alleles ../bin/freebayes ../bin/alleles
  
 --- a/Makefile
 +++ b/Makefile
@@ -66,227 +69,3 @@ Description: vcflib needs to be packaged separately
  	cd src && $(MAKE)
  
  log: src/version_git.h
---- a/src/AlleleParser.cpp
-+++ b/src/AlleleParser.cpp
-@@ -485,7 +485,7 @@ void AlleleParser::setupVCFInput(void) {
-     // variant input for analysis and targeting
-     if (!parameters.variantPriorsFile.empty()) {
-         variantCallInputFile.open(parameters.variantPriorsFile);
--        currentVariant = new vcf::Variant(variantCallInputFile);
-+        currentVariant = new vcflib::Variant(variantCallInputFile);
-         usingVariantInputAlleles = true;
- 
-         // get sample names from VCF input file
-@@ -1108,7 +1108,7 @@ void AlleleParser::updateHaplotypeBasisA
-                                                 pos + referenceLength + CACHED_BASIS_HAPLOTYPE_WINDOW + 1)) {
-             //cerr << "the vcf line " << haplotypeVariantInputFile.line << endl;
-             // get the variants in the target region
--            vcf::Variant var(haplotypeVariantInputFile);
-+            vcflib::Variant var(haplotypeVariantInputFile);
-             while (haplotypeVariantInputFile.getNextVariant(var)) {
-                 //cerr << "input variant: " << var << endl;
- 		
-@@ -1122,9 +1122,9 @@ void AlleleParser::updateHaplotypeBasisA
-                   }
-                 */
- 
--                map<string, vector<vcf::VariantAllele> > variants = var.parsedAlternates();
--                for (map<string, vector<vcf::VariantAllele> >::iterator a = variants.begin(); a != variants.end(); ++a) {
--                    for (vector<vcf::VariantAllele>::iterator v = a->second.begin(); v != a->second.end(); ++v) {
-+                map<string, vector<vcflib::VariantAllele> > variants = var.parsedAlternates();
-+                for (map<string, vector<vcflib::VariantAllele> >::iterator a = variants.begin(); a != variants.end(); ++a) {
-+                    for (vector<vcflib::VariantAllele>::iterator v = a->second.begin(); v != a->second.end(); ++v) {
-                         //cerr << v->ref << "/" << v->alt << endl;
-                         if (v->ref != v->alt) {
-                             //cerr << "basis allele " << v->position << " " << v->ref << "/" << v->alt << endl;
-@@ -2107,7 +2107,7 @@ void AlleleParser::getInputVariantsInReg
-     if (!usingVariantInputAlleles) return;
- 
-     // get the variants in the target region
--    vcf::Variant var(variantCallInputFile);
-+    vcflib::Variant var(variantCallInputFile);
-     if (!seq.empty()) {
-         variantCallInputFile.setRegion(seq, start, end);
-     }
-@@ -2117,10 +2117,10 @@ void AlleleParser::getInputVariantsInReg
-         long int pos = currentVariant->position - 1;
-         // get alternate alleles
-         bool includePreviousBaseForIndels = true;
--        map<string, vector<vcf::VariantAllele> > variantAlleles = currentVariant->parsedAlternates();
-+        map<string, vector<vcflib::VariantAllele> > variantAlleles = currentVariant->parsedAlternates();
-         // TODO this would be a nice option: why does it not work?
--        //map<string, vector<vcf::VariantAllele> > variantAlleles = currentVariant->flatAlternates();
--        vector< vector<vcf::VariantAllele> > orderedVariantAlleles;
-+        //map<string, vector<vcflib::VariantAllele> > variantAlleles = currentVariant->flatAlternates();
-+        vector< vector<vcflib::VariantAllele> > orderedVariantAlleles;
-         for (vector<string>::iterator a = currentVariant->alt.begin(); a != currentVariant->alt.end(); ++a) {
-             orderedVariantAlleles.push_back(variantAlleles[*a]);
-         }
-@@ -2128,14 +2128,14 @@ void AlleleParser::getInputVariantsInReg
-         vector<Allele> genotypeAlleles;
-         set<long int> alternatePositions;
- 
--        for (vector< vector<vcf::VariantAllele> >::iterator g = orderedVariantAlleles.begin(); g != orderedVariantAlleles.end(); ++g) {
-+        for (vector< vector<vcflib::VariantAllele> >::iterator g = orderedVariantAlleles.begin(); g != orderedVariantAlleles.end(); ++g) {
- 
--            vector<vcf::VariantAllele>& altAllele = *g;
-+            vector<vcflib::VariantAllele>& altAllele = *g;
- 
-             vector<Allele> alleles;
- 
--            for (vector<vcf::VariantAllele>::iterator v = altAllele.begin(); v != altAllele.end(); ++v) {
--                vcf::VariantAllele& variant = *v;
-+            for (vector<vcflib::VariantAllele>::iterator v = altAllele.begin(); v != altAllele.end(); ++v) {
-+                vcflib::VariantAllele& variant = *v;
-                 long int allelePos = variant.position - 1;
-                 AlleleType type;
-                 string alleleSequence = variant.alt;
-@@ -2240,7 +2240,7 @@ void AlleleParser::updateInputVariants(l
-         if (gotRegion) {
- 
-             // get the variants in the target region
--            vcf::Variant var(variantCallInputFile);
-+            vcflib::Variant var(variantCallInputFile);
-             bool ok;
-             while (ok = variantCallInputFile.getNextVariant(*currentVariant)) {
- 
-@@ -2248,10 +2248,10 @@ void AlleleParser::updateInputVariants(l
-                 long int pos = currentVariant->position - 1;
-                 // get alternate alleles
-                 bool includePreviousBaseForIndels = true;
--                map<string, vector<vcf::VariantAllele> > variantAlleles = currentVariant->parsedAlternates();
-+                map<string, vector<vcflib::VariantAllele> > variantAlleles = currentVariant->parsedAlternates();
-                 // TODO this would be a nice option: why does it not work?
--                //map<string, vector<vcf::VariantAllele> > variantAlleles = currentVariant->flatAlternates();
--                vector< vector<vcf::VariantAllele> > orderedVariantAlleles;
-+                //map<string, vector<vcflib::VariantAllele> > variantAlleles = currentVariant->flatAlternates();
-+                vector< vector<vcflib::VariantAllele> > orderedVariantAlleles;
-                 for (vector<string>::iterator a = currentVariant->alt.begin(); a != currentVariant->alt.end(); ++a) {
-                     orderedVariantAlleles.push_back(variantAlleles[*a]);
-                 }
-@@ -2259,14 +2259,14 @@ void AlleleParser::updateInputVariants(l
-                 vector<Allele> genotypeAlleles;
-                 set<long int> alternatePositions;
- 
--                for (vector< vector<vcf::VariantAllele> >::iterator g = orderedVariantAlleles.begin(); g != orderedVariantAlleles.end(); ++g) {
-+                for (vector< vector<vcflib::VariantAllele> >::iterator g = orderedVariantAlleles.begin(); g != orderedVariantAlleles.end(); ++g) {
- 
--                    vector<vcf::VariantAllele>& altAllele = *g;
-+                    vector<vcflib::VariantAllele>& altAllele = *g;
- 
-                     vector<Allele> alleles;
- 
--                    for (vector<vcf::VariantAllele>::iterator v = altAllele.begin(); v != altAllele.end(); ++v) {
--                        vcf::VariantAllele& variant = *v;
-+                    for (vector<vcflib::VariantAllele>::iterator v = altAllele.begin(); v != altAllele.end(); ++v) {
-+                        vcflib::VariantAllele& variant = *v;
-                         long int allelePos = variant.position - 1;
-                         AlleleType type;
-                         string alleleSequence = variant.alt;
---- a/src/AlleleParser.h
-+++ b/src/AlleleParser.h
-@@ -163,9 +163,9 @@ public:
-     BedReader bedReader;
- 
-     // VCF
--    vcf::VariantCallFile variantCallFile;
--    vcf::VariantCallFile variantCallInputFile;   // input variant alleles, to target analysis
--    vcf::VariantCallFile haplotypeVariantInputFile;  // input alleles which will be used to construct haplotype alleles
-+    vcflib::VariantCallFile variantCallFile;
-+    vcflib::VariantCallFile variantCallInputFile;   // input variant alleles, to target analysis
-+    vcflib::VariantCallFile haplotypeVariantInputFile;  // input alleles which will be used to construct haplotype alleles
- 
-     // input haplotype alleles
-     // 
-@@ -349,7 +349,7 @@ private:
- 
-     int currentRefID;
-     BamAlignment currentAlignment;
--    vcf::Variant* currentVariant;
-+    vcflib::Variant* currentVariant;
- 
- };
- 
---- a/src/ResultData.cpp
-+++ b/src/ResultData.cpp
-@@ -5,8 +5,8 @@ using namespace std;
- 
- 
- 
--vcf::Variant& Results::vcf(
--    vcf::Variant& var, // variant to update
-+vcflib::Variant& Results::vcf(
-+    vcflib::Variant& var, // variant to update
-     BigFloat pHom,
-     long double bestComboOddsRatio,
-     //long double alleleSamplingProb,
-@@ -630,8 +630,8 @@ vcf::Variant& Results::vcf(
- }
- 
- 
--vcf::Variant& Results::gvcf(
--    vcf::Variant& var,
-+vcflib::Variant& Results::gvcf(
-+    vcflib::Variant& var,
-     NonCalls& nonCalls,
-     AlleleParser* parser) {
- 
---- a/src/ResultData.h
-+++ b/src/ResultData.h
-@@ -41,8 +41,8 @@ public:
-         }
-     }
- 
--    vcf::Variant& vcf(
--        vcf::Variant& var, // variant to update
-+    vcflib::Variant& vcf(
-+        vcflib::Variant& var, // variant to update
-         BigFloat pHom,
-         long double bestComboOddsRatio,
-         //long double alleleSamplingProb,
-@@ -61,8 +61,8 @@ public:
-         vector<string>& sequencingTechnologies,
-         AlleleParser* parser);
- 
--    vcf::Variant& gvcf(
--        vcf::Variant& var,
-+    vcflib::Variant& gvcf(
-+        vcflib::Variant& var,
-         NonCalls& noncalls,
-         AlleleParser* parser);
- };
---- a/src/freebayes.cpp
-+++ b/src/freebayes.cpp
-@@ -144,7 +144,7 @@ int main (int argc, char *argv[]) {
-               || (parameters.gVCFchunk &&
-                   nonCalls.lastPos().second - nonCalls.firstPos().second
-                   > parameters.gVCFchunk))) {
--            vcf::Variant var(parser->variantCallFile);
-+            vcflib::Variant var(parser->variantCallFile);
-             out << results.gvcf(var, nonCalls, parser) << endl;
-             nonCalls.clear();
-         }
-@@ -658,12 +658,12 @@ int main (int argc, char *argv[]) {
- 
-             // write the last gVCF record(s)
-             if (parameters.gVCFout && !nonCalls.empty()) {
--                vcf::Variant var(parser->variantCallFile);
-+                vcflib::Variant var(parser->variantCallFile);
-                 out << results.gvcf(var, nonCalls, parser) << endl;
-                 nonCalls.clear();
-             }
- 
--            vcf::Variant var(parser->variantCallFile);
-+            vcflib::Variant var(parser->variantCallFile);
- 
-             out << results.vcf(
-                 var,
-@@ -696,7 +696,7 @@ int main (int argc, char *argv[]) {
-     // write the last gVCF record
-     if (parameters.gVCFout && !nonCalls.empty()) {
-         Results results;
--        vcf::Variant var(parser->variantCallFile);
-+        vcflib::Variant var(parser->variantCallFile);
-         out << results.gvcf(var, nonCalls, parser) << endl;
-         nonCalls.clear();
-     }
diff --git a/debian/patches/vcffirstheader.patch b/debian/patches/vcffirstheader.patch
new file mode 100644
index 0000000..070fcd0
--- /dev/null
+++ b/debian/patches/vcffirstheader.patch
@@ -0,0 +1,29 @@
+Author: Andreas Tille <tille at debian.org>
+Last-Update: Fri, 10 Feb 2017 09:09:35 +0100
+Description: This script was not part of the vcflib release
+ tarball but is available in Git
+   https://github.com/vcflib/vcflib/blob/master/scripts/vcffirstheader
+ Since it is used in the test suite of freebayes 1.1 it is installed
+ here as quilt patch.  Once vcflib might be release including the
+ scripts directory the patch can be dropped and replaced by an according
+ symlink inside rules or by setting PATH accordingly
+
+--- /dev/null
++++ b/vcflib/scripts/vcffirstheader
+@@ -0,0 +1,16 @@
++#!/usr/bin/env python
++
++import sys
++
++header=True
++for line in sys.stdin:
++    if line.startswith('##'):
++        if header:
++            print line.strip()
++        continue
++    elif line.startswith('#'):
++        if header:
++           print line.strip()
++           header=False
++        continue
++    print line.strip()
diff --git a/debian/rules b/debian/rules
index 8045fdf..666b949 100755
--- a/debian/rules
+++ b/debian/rules
@@ -9,5 +9,9 @@ override_dh_auto_install:
 override_dh_auto_test:
 	mkdir -p $(CURDIR)/test/bash-tap/
 	for bt in $(CURDIR)/debian/bash-tap/* ; do ln -s $${bt} $(CURDIR)/test/bash-tap/`basename $${bt}` ; done
-	export PATH=/usr/lib/vcflib/binaries/:$(PATH) dh_auto_test && echo "Tests were running successfully"
+	ln -s $(CURDIR)/debian/test-simple-bash/lib test/test-simple-bash
+	chmod +x vcflib/scripts/vcffirstheader
+	# export PATH=/usr/lib/vcflib/binaries/:$(PATH) dh_auto_test
+	echo "Tests should be run" && PATH=/usr/lib/vcflib/binaries/:$(PATH) dh_auto_test && echo "Tests were running successfully"
 	rm -rf $(CURDIR)/test/bash-tap
+	rm test/test-simple-bash/lib
diff --git a/debian/test-simple-bash/lib/test-simple.bash b/debian/test-simple-bash/lib/test-simple.bash
new file mode 100644
index 0000000..dab44e7
--- /dev/null
+++ b/debian/test-simple-bash/lib/test-simple.bash
@@ -0,0 +1,110 @@
+# test-simple.bash - Simple TAP test framework for Bash
+#
+# Copyright (c) 2013 Ingy döt Net
+
+TestSimple_VERSION='0.0.1'
+
+TestSimple.init() {
+    TestSimple_plan=0
+    TestSimple_run=0
+    TestSimple_failed=0
+    TestSimple_usage='Usage: source test-simple.bash tests <number>'
+
+    if [ $# -gt 0 ]; then
+        [[ $# -eq 2 ]] && [[ "$1" == 'tests' ]] ||
+            TestSimple.die "$TestSimple_usage"
+        [[ "$2" =~ ^-?[0-9]+$ ]] ||
+            TestSimple.die 'Plan must be a number'
+        [[ $2 -gt 0 ]] ||
+            TestSimple.die 'Plan must greater then 0'
+        TestSimple_plan=$2
+        printf "1..%d\n" $TestSimple_plan
+    fi
+
+    trap TestSimple.END EXIT
+}
+
+ok() {
+    local args=("$@")
+    local last=$((${#args[@]} - 1))
+    local label=''
+    local ending_re='^]]?$'
+    let TestSimple_run=TestSimple_run+1
+    (
+        set +e
+        local rc=
+        if [[ $last -gt 0 ]] && [[ ! "${args[$last]}" =~ $ending_re ]]; then
+            label="${args[$last]}"
+            unset args[$last]
+        fi
+        if [[ ${#args[@]} -eq 1 ]] && [[ "${args[0]}" =~ ^[0-9]+$ ]]; then
+            rc=${args[0]}
+        elif [ ${args[0]} == '[[' ]; then
+            # XXX Currently need eval to support [[. Is there another way?
+            # Is [[ overkill? So many questons!
+            eval "${args[@]}" &> /dev/null
+            rc=$?
+        else
+            "${args[@]}" &> /dev/null
+            rc=$?
+        fi
+        if [ $rc -eq 0 ]; then
+            if [ -n "$label" ]; then
+                echo "ok $TestSimple_run - $label"
+            else
+                echo "ok $TestSimple_run"
+            fi
+        else
+            let TestSimple_failed=TestSimple_failed+1
+            if [ -n "$label" ]; then
+                echo "not ok $TestSimple_run - $label"
+                TestSimple.failure "$label"
+            else
+                echo "not ok $TestSimple_run"
+                TestSimple.failure "$label"
+            fi
+        fi
+        return $rc
+    )
+}
+
+TestSimple_CALL_STACK_LEVEL=1
+TestSimple.failure() {
+    local c=( $(caller $TestSimple_CALL_STACK_LEVEL) )
+    local file=${c[2]}
+    local line=${c[0]}
+    local label="$1"
+    label=${label:+"'$label'\n#   at $file line $line."}
+    label=${label:-"at $file line $line."}
+    echo -e "#   Failed test $label" >&2
+}
+
+TestSimple.END() {
+    for v in plan run failed; do eval local $v=\$TestSimple_$v; done
+    if [ $plan -eq 0 ]; then
+        if [ $run -gt 0 ]; then
+            echo "# Tests were run but no plan was declared." >&2
+        fi
+    else
+        if [ $run -eq 0 ]; then
+            echo "# No tests run!" >&2
+        elif [ $run -ne $plan ]; then
+            local msg="# Looks like you planned $plan tests but ran $run."
+            [ $plan -eq 1 ] && msg=${msg/tests/test}
+            echo "$msg" >&2
+        fi
+    fi
+    local exit_code=0
+    if [ $TestSimple_failed -gt 0 ]; then
+        exit_code=$TestSimple_failed
+        [ $exit_code -gt 254 ] && exit_code=254
+        local msg="# Looks like you failed $failed tests of $run run."
+        [ $TestSimple_failed -eq 1 ] && msg=${msg/tests/test}
+        echo "$msg" >&2
+    fi
+    exit $exit_code
+}
+
+TestSimple.die() { echo "$@" >&2; trap EXIT; exit 255; }
+
+[[ "${BASH_SOURCE[0]}" != "${0}" ]] && TestSimple.init "$@"
diff --git a/debian/test-simple-bash/test/basics.t b/debian/test-simple-bash/test/basics.t
new file mode 100644
index 0000000..61949ea
--- /dev/null
+++ b/debian/test-simple-bash/test/basics.t
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+PATH=lib:$PATH
+source test-simple.bash tests 14
+
+ok 0                            '0 is true'
+ok $((6 * 7 -42))               'Math result is 0'
+ok true                         'true is ok'
+ok $(false || true; echo $?)    'Expression expansion'
+
+ls &> /dev/null
+ok $?                           '$? is success'
+ls --qqq &> /dev/null
+ok $((! $?))                    'Negate $? failure'
+
+fruit=apple
+
+ok [ $fruit = apple ]           '[ … ] testing works'
+ok [ "0" == "0" -a 1 -eq 1 ]    '[ … -a … ] (AND) testing works'
+ok [ ${fruit/a/A} = Apple ]     'Substitution expansion works'
+ok [ "${fruit}s" = 'app''les' ] 'Quote removal works'
+ok [[ $fruit = apple ]]         '[[ … ]] works'
+ok [[ $fruit == apple ]]        '== works'
+ok [[ $((6 * 7)) -eq 42 ]]      '-eq works with math expression'
+ok $(ls | grep lib &> /dev/null; echo $?) \
+                                'Testing a grep command works'
diff --git a/debian/test-simple-bash/test/doc.t b/debian/test-simple-bash/test/doc.t
new file mode 100644
index 0000000..7d77db7
--- /dev/null
+++ b/debian/test-simple-bash/test/doc.t
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+question() { echo yes; }
+
+PATH=lib:$PATH
+source test-simple.bash tests 5
+
+ok 0                    '0 is true (other numbers are false)'
+
+answer=$(question "...?")
+ok [ $answer == yes ]   'The answer is yes!'
+ok [[ $answer =~ ^y ]]  'The answer begins with y'
+
+ok true                 'true is ok'
+ok '! false'            '! false is true'
diff --git a/debian/test-simple-bash/test/no-label.t b/debian/test-simple-bash/test/no-label.t
new file mode 100644
index 0000000..9b58eb4
--- /dev/null
+++ b/debian/test-simple-bash/test/no-label.t
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+PATH=lib:$PATH
+source test-simple.bash tests 14
+
+ok 0
+ok $((6 * 7 -42))
+ok true
+ok $(false || true; echo $?)
+
+ls &> /dev/null
+ok $?
+ls --qqq &> /dev/null
+ok $((! $?))
+
+fruit=apple
+
+ok [ $fruit = apple ]
+ok [ "0" == "0" -a 1 -eq 1 ]
+ok [ ${fruit/a/A} = Apple ]
+ok [ "${fruit}s" = 'app''les' ]
+ok [[ $fruit = apple ]]
+ok [[ $fruit == apple ]]
+ok [[ $((6 * 7)) -eq 42 ]]
+ok $(ls | grep lib &> /dev/null; echo $?)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/freebayes.git



More information about the debian-med-commit mailing list