[med-svn] [kmc] 01/01: This time it might actually work. Sorry for all the pushes

Jorge Soares jssoares-guest at moszumanska.debian.org
Tue Nov 18 14:28:05 UTC 2014


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

jssoares-guest pushed a commit to branch master
in repository kmc.

commit cd82d8b2c3aa54276f9f0203532013dc04800d21
Author: Jorge Soares <j.s.soares at gmail.com>
Date:   Tue Nov 18 14:27:30 2014 +0000

    This time it might actually work. Sorry for all the pushes
---
 debian/changelog                                   |   5 +
 debian/compat                                      |   1 +
 debian/control                                     |  39 ++++++
 debian/copyright                                   |  23 ++++
 debian/kmc.install                                 |   1 +
 debian/kmc.manpages                                |   1 +
 ...-libz2-include-statements-to-native-debian-libs |  30 +++++
 ...hange-kmc-zlib-and-libz2-to-deb-zlib-and-libbz2 |  18 +++
 debian/patches/debian-dependent-makefile.patch     |  36 ++++++
 .../remove-all-zlib-libz2-include-statements       |  15 +++
 .../patches/remove-call-to-asmlib-sub-in-kbsorter  |  16 +++
 .../remove-embedded-libraries-from-makefile        |  26 ++++
 .../remove-gz-and-bz-flags-from-compilation        |  13 ++
 debian/patches/remove-references-to-asmlib         |  44 +++++++
 .../patches/remove-use-of-asmlib-subroutines.patch | 141 +++++++++++++++++++++
 debian/patches/removing-static-option-in-makefile  |   1 +
 debian/patches/series                              |   6 +
 debian/rules                                       |  25 ++++
 debian/source/format                               |   1 +
 debian/upstream/metadata                           |  12 ++
 debian/usage_to_man                                | 140 ++++++++++++++++++++
 debian/watch                                       |   5 +
 22 files changed, 599 insertions(+)

diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..d941639
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
+kmc (2.0+dfsg-1) unstable; urgency=medium
+
+  * Initial release (Closes: #1234)
+
+ -- Jorge Soares <j.s.soares at gmail.com>  Mon, 03 Nov 2014 14:46:54 +0200
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..365cc7a
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,39 @@
+Source: kmc
+Maintainer: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
+Uploaders: Andreas Tille <tille at debian.org>,
+           Jorge Soares <j.s.soares at gmail.com>
+Section: science
+Priority: optional
+Build-Depends: debhelper (>= 9),
+               zlib1g-dev,
+	       libbz2-dev,
+	       libboost1.54-all-dev,
+	       help2man,
+	       d-shlibs
+Standards-Version: 3.9.6
+Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/kmc.git
+Homepage: https://github.com/js21/kmc
+
+Package: kmc
+Architecture: any
+Depends: ${shlibs:Depends},
+         ${misc:Depends}
+Description: Designed for counting k-mers (sequences of consecutive k symbols)
+ in a set of reads K-mer counting is important for many bioinformatics
+ applications, e.g., developing de Bruijn graph assemblers.
+ Building de Bruijn graphs is a commonly used approach for genome
+ assembly with data from second-generation sequencer.
+ Unfortunately, sequencing errors (frequent in practice)
+ results in huge memory requirements for de Bruijn graphs, as well
+ as long build time. One of the popular approaches to handle this
+ problem is filtering the input reads in such a way that unique k-mers
+ (very likely obtained as a result of an error) are discarded.
+ .
+ Thus, KMC scans the raw reads and produces a compact representation
+ of all non-unique reads accompanied with number of their occurrences.
+ The algorithm implemented in KMC makes use mostly of disk space rather
+ than RAM, which allows one to use KMC even on rather typical personal
+ computers. When run at high-end server (what is necessary for KMC
+ competitors) it outperforms them in both memory requirements and
+ speed of computation. The disk space necessary for computation is in
+ order of the size of input data (usually it is smaller). 
\ No newline at end of file
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..2f76f2e
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,23 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: KMC
+Source: https://github.com/js21/kmc
+Files-Excluded: kmer_counter/libs/*
+
+Files: *
+Copyright: © 2012-2013 username <mail address>
+License: GPL-3
+ This package 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 3 of the License, or
+ (at your option) any later version.
+ .
+ This package 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/>
+ .
+ On Debian systems, the complete text of the GNU General
+ Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
diff --git a/debian/kmc.install b/debian/kmc.install
new file mode 100644
index 0000000..efa6632
--- /dev/null
+++ b/debian/kmc.install
@@ -0,0 +1 @@
+bin/*
\ No newline at end of file
diff --git a/debian/kmc.manpages b/debian/kmc.manpages
new file mode 100644
index 0000000..bf519d7
--- /dev/null
+++ b/debian/kmc.manpages
@@ -0,0 +1 @@
+man/*.1
diff --git a/debian/patches/change-all-zlib-libz2-include-statements-to-native-debian-libs b/debian/patches/change-all-zlib-libz2-include-statements-to-native-debian-libs
new file mode 100644
index 0000000..0355fbe
--- /dev/null
+++ b/debian/patches/change-all-zlib-libz2-include-statements-to-native-debian-libs
@@ -0,0 +1,30 @@
+Description: zlib and libbz2 are distributed with the KMC.
+This patch alters the include statments for these libraries,
+using the debian libs instead.--- a/kmer_counter/fastq_reader.h
++++ b/kmer_counter/fastq_reader.h
+@@ -16,8 +16,8 @@
+ #include <stdio.h>
+ #include <iostream>
+ 
+-#include "libs/zlib.h"
+-#include "libs/bzlib.h"
++#include "zlib.h"
++#include "bzlib.h"
+ 
+ 
+ using namespace std;
+Index: b/kmer_counter/fastq_reader.h
+===================================================================
+--- a/kmer_counter/fastq_reader.h
++++ b/kmer_counter/fastq_reader.h
+@@ -16,8 +16,8 @@
+ #include <stdio.h>
+ #include <iostream>
+ 
+-#include "libs/zlib.h"
+-#include "libs/bzlib.h"
++#include "zlib.h"
++#include "bzlib.h"
+ 
+ 
+ using namespace std;
diff --git a/debian/patches/change-kmc-zlib-and-libz2-to-deb-zlib-and-libbz2 b/debian/patches/change-kmc-zlib-and-libz2-to-deb-zlib-and-libbz2
new file mode 100644
index 0000000..80091d2
--- /dev/null
+++ b/debian/patches/change-kmc-zlib-and-libz2-to-deb-zlib-and-libbz2
@@ -0,0 +1,18 @@
+Description: KMC distributes zlib and libbz2.
+This changes the usage of the distributed libs
+and makes KMC use the native debian libs
+Index: b/kmer_counter/fastq_reader.h
+===================================================================
+--- a/kmer_counter/fastq_reader.h
++++ b/kmer_counter/fastq_reader.h
+@@ -16,8 +16,8 @@
+ #include <stdio.h>
+ #include <iostream>
+ 
+-#include "libs/zlib.h"
+-#include "libs/bzlib.h"
++#include "zlib.h"
++#include "bzlib.h"
+ 
+ 
+ using namespace std;
diff --git a/debian/patches/debian-dependent-makefile.patch b/debian/patches/debian-dependent-makefile.patch
new file mode 100644
index 0000000..8bb32d4
--- /dev/null
+++ b/debian/patches/debian-dependent-makefile.patch
@@ -0,0 +1,36 @@
+Description: Removes all local dependencies from the makefile and
+establishes links to the respective debian packages
+Index: b/makefile
+===================================================================
+--- a/makefile
++++ b/makefile
+@@ -1,7 +1,7 @@
+ all: kmc
+-	
+-BOOST_LIB = /boost/boost_1_55_0/stage/lib
+-BOOST_H = /boost/boost_1_55_0
++
++BOOST_LIB = /usr/lib/x86_64-linux-gnu
++BOOST_H = /usr/include/boost
+ 
+ KMC_BIN_DIR = bin
+ KMC_MAIN_DIR = kmer_counter
+@@ -13,15 +13,15 @@ CFLAGS	= -Wall -O3 -m64 -static -fopenmp
+ CLINK	= -lm -static -fopenmp -O3 -std=c++11 
+ 
+ .cpp.o:
+-	$(CC) $(CFLAGS) -c $< -o $@
++	$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+ 
+ kmc: $(KMC_MAIN_DIR)/kmer_counter.o $(KMC_MAIN_DIR)/mmer.o $(KMC_MAIN_DIR)/mem_disk_file.o  $(KMC_MAIN_DIR)/rev_byte.o $(KMC_MAIN_DIR)/fastq_reader.o $(KMC_MAIN_DIR)/timer.o $(KMC_MAIN_DIR)/radix.o $(KMC_MAIN_DIR)/kb_completer.o $(KMC_MAIN_DIR)/kb_storer.o $(KMC_MAIN_DIR)/kmer.o
+ 	-mkdir -p $(KMC_BIN_DIR)
+-	$(CC) $(CLINK) -o $(KMC_BIN_DIR)/$@ $(KMC_MAIN_DIR)/kmer_counter.o $(KMC_MAIN_DIR)/mem_disk_file.o $(KMC_MAIN_DIR)/rev_byte.o $(KMC_MAIN_DIR)/mmer.o $(KMC_MAIN_DIR)/fastq_reader.o $(KMC_MAIN_DIR)/timer.o $(KMC_MAIN_DIR)/radix.o $(KMC_MAIN_DIR)/kb_completer.o $(KMC_MAIN_DIR)/kb_storer.o $(KMC_MAIN_DIR)/kmer.o $(KMC_MAIN_DIR)/libs/alibelf64.a $(KMC_MAIN_DIR)/libs/libz.a $(KMC_MAIN_DIR)/libs/libbz2.a $(BOOST_LIB)/libboost_thread.a $(BOOST_LIB)/libboost_filesystem.a $(BOOST_LIB)/libboost_system.a
++	$(CC) $(CPPFLAGS) $(CLINK) -o $(KMC_BIN_DIR)/$@ $(KMC_MAIN_DIR)/kmer_counter.o $(KMC_MAIN_DIR)/mem_disk_file.o $(KMC_MAIN_DIR)/rev_byte.o $(KMC_MAIN_DIR)/mmer.o $(KMC_MAIN_DIR)/fastq_reader.o $(KMC_MAIN_DIR)/timer.o $(KMC_MAIN_DIR)/radix.o $(KMC_MAIN_DIR)/kb_completer.o $(KMC_MAIN_DIR)/kb_storer.o $(KMC_MAIN_DIR)/kmer.o $(KMC_MAIN_DIR)/libs/alibelf64.a $(KMC_MAIN_DIR)/libs/libz.a $(KMC_MAIN_DIR)/libs/libbz2.a $(BOOST_LIB)/libboost_thread.a $(BOOST_LIB)/libboost_filesystem.a $(BOOST_LIB [...]
+ 
+ kmc_dump: $(KMC_DUMP_DIR)/nc_utils.o $(KMC_API_DIR)/mmer.o $(KMC_DUMP_DIR)/kmc_dump.o $(KMC_API_DIR)/kmc_file.o $(KMC_API_DIR)/kmer_api.o
+ 	-mkdir -p $(KMC_BIN_DIR)
+-	$(CC) $(CLINK) -o $(KMC_BIN_DIR)/$@ $(KMC_DUMP_DIR)/nc_utils.o $(KMC_API_DIR)/mmer.o $(KMC_DUMP_DIR)/kmc_dump.o $(KMC_API_DIR)/kmc_file.o $(KMC_API_DIR)/kmer_api.o
++	$(CC) $(CPPFLAGS) $(CLINK) -o $(KMC_BIN_DIR)/$@ $(KMC_DUMP_DIR)/nc_utils.o $(KMC_API_DIR)/mmer.o $(KMC_DUMP_DIR)/kmc_dump.o $(KMC_API_DIR)/kmc_file.o $(KMC_API_DIR)/kmer_api.o $(LDFLAGS)
+ 
+ clean:
+ 	-rm $(KMC_MAIN_DIR)/*.o
diff --git a/debian/patches/remove-all-zlib-libz2-include-statements b/debian/patches/remove-all-zlib-libz2-include-statements
new file mode 100644
index 0000000..019c8b3
--- /dev/null
+++ b/debian/patches/remove-all-zlib-libz2-include-statements
@@ -0,0 +1,15 @@
+Index: b/kmer_counter/fastq_reader.h
+===================================================================
+--- a/kmer_counter/fastq_reader.h
++++ b/kmer_counter/fastq_reader.h
+@@ -16,8 +16,8 @@
+ #include <stdio.h>
+ #include <iostream>
+ 
+-#include "libs/zlib.h"
+-#include "libs/bzlib.h"
++#include "zlib.h"
++#include "bzlib.h"
+ 
+ 
+ using namespace std;
diff --git a/debian/patches/remove-call-to-asmlib-sub-in-kbsorter b/debian/patches/remove-call-to-asmlib-sub-in-kbsorter
new file mode 100644
index 0000000..b085a86
--- /dev/null
+++ b/debian/patches/remove-call-to-asmlib-sub-in-kbsorter
@@ -0,0 +1,16 @@
+Description: Removes a call to set memory cache.
+asmlib subroutineIndex: kmc/kmer_counter/kb_sorter.h
+===================================================================
+Index: b/kmer_counter/kb_sorter.h
+===================================================================
+--- a/kmer_counter/kb_sorter.h
++++ b/kmer_counter/kb_sorter.h
+@@ -247,8 +247,6 @@ template <typename KMER_T, unsigned SIZE
+ 	uint64 tmp_n_rec;
+ 	CMemDiskFile *file;
+ 	
+-	SetMemcpyCacheLimit(8);
+-
+ 	// Process bins
+ 	while (!bq->completed())
+ 	{
diff --git a/debian/patches/remove-embedded-libraries-from-makefile b/debian/patches/remove-embedded-libraries-from-makefile
new file mode 100644
index 0000000..e39ec14
--- /dev/null
+++ b/debian/patches/remove-embedded-libraries-from-makefile
@@ -0,0 +1,26 @@
+Description: Removes the calls to the distributed
+libraries
+===================================================================
+Index: b/makefile
+===================================================================
+--- a/makefile
++++ b/makefile
+@@ -9,15 +9,15 @@ KMC_API_DIR = kmc_api
+ KMC_DUMP_DIR = kmc_dump
+ 
+ CC 	= g++
+-CFLAGS	= -Wall -O3 -m64 -static -fopenmp -std=c++11 -I $(BOOST_H)
+-CLINK	= -lm -static -fopenmp -O3 -std=c++11 
++CFLAGS	= -Wall -O3 -m64 -fopenmp -std=c++11 -I $(BOOST_H)
++CLINK	= -lm -fopenmp -O3 -std=c++11
+ 
+ .cpp.o:
+ 	$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+ 
+ kmc: $(KMC_MAIN_DIR)/kmer_counter.o $(KMC_MAIN_DIR)/mmer.o $(KMC_MAIN_DIR)/mem_disk_file.o  $(KMC_MAIN_DIR)/rev_byte.o $(KMC_MAIN_DIR)/fastq_reader.o $(KMC_MAIN_DIR)/timer.o $(KMC_MAIN_DIR)/radix.o $(KMC_MAIN_DIR)/kb_completer.o $(KMC_MAIN_DIR)/kb_storer.o $(KMC_MAIN_DIR)/kmer.o
+ 	-mkdir -p $(KMC_BIN_DIR)
+-	$(CC) $(CPPFLAGS) $(CLINK) -o $(KMC_BIN_DIR)/$@ $(KMC_MAIN_DIR)/kmer_counter.o $(KMC_MAIN_DIR)/mem_disk_file.o $(KMC_MAIN_DIR)/rev_byte.o $(KMC_MAIN_DIR)/mmer.o $(KMC_MAIN_DIR)/fastq_reader.o $(KMC_MAIN_DIR)/timer.o $(KMC_MAIN_DIR)/radix.o $(KMC_MAIN_DIR)/kb_completer.o $(KMC_MAIN_DIR)/kb_storer.o $(KMC_MAIN_DIR)/kmer.o $(KMC_MAIN_DIR)/libs/alibelf64.a $(KMC_MAIN_DIR)/libs/libz.a $(KMC_MAIN_DIR)/libs/libbz2.a $(BOOST_LIB)/libboost_thread.a $(BOOST_LIB)/libboost_filesystem.a $(BOOST_LIB [...]
++	$(CC) $(CPPFLAGS) $(CLINK) -o $(KMC_BIN_DIR)/$@ $(KMC_MAIN_DIR)/kmer_counter.o $(KMC_MAIN_DIR)/mem_disk_file.o $(KMC_MAIN_DIR)/rev_byte.o $(KMC_MAIN_DIR)/mmer.o $(KMC_MAIN_DIR)/fastq_reader.o $(KMC_MAIN_DIR)/timer.o $(KMC_MAIN_DIR)/radix.o $(KMC_MAIN_DIR)/kb_completer.o $(KMC_MAIN_DIR)/kb_storer.o $(KMC_MAIN_DIR)/kmer.o $(BOOST_LIB)/libboost_thread.a $(BOOST_LIB)/libboost_filesystem.a $(BOOST_LIB)/libboost_system.a $(LDFLAGS) -lz -lbz2
+ 
+ kmc_dump: $(KMC_DUMP_DIR)/nc_utils.o $(KMC_API_DIR)/mmer.o $(KMC_DUMP_DIR)/kmc_dump.o $(KMC_API_DIR)/kmc_file.o $(KMC_API_DIR)/kmer_api.o
+ 	-mkdir -p $(KMC_BIN_DIR)
diff --git a/debian/patches/remove-gz-and-bz-flags-from-compilation b/debian/patches/remove-gz-and-bz-flags-from-compilation
new file mode 100644
index 0000000..86df646
--- /dev/null
+++ b/debian/patches/remove-gz-and-bz-flags-from-compilation
@@ -0,0 +1,13 @@
+Description: Removing -lz and -lbz2 from compilation command.Index: kmc/makefile
+===================================================================
+--- kmc.orig/makefile
++++ kmc/makefile
+@@ -17,7 +17,7 @@ CLINK	= -lm -static -fopenmp -O3 -std=c+
+ 
+ kmc: $(KMC_MAIN_DIR)/kmer_counter.o $(KMC_MAIN_DIR)/mmer.o $(KMC_MAIN_DIR)/mem_disk_file.o  $(KMC_MAIN_DIR)/rev_byte.o $(KMC_MAIN_DIR)/fastq_reader.o $(KMC_MAIN_DIR)/timer.o $(KMC_MAIN_DIR)/radix.o $(KMC_MAIN_DIR)/kb_completer.o $(KMC_MAIN_DIR)/kb_storer.o $(KMC_MAIN_DIR)/kmer.o
+ 	-mkdir -p $(KMC_BIN_DIR)
+-	$(CC) $(CPPFLAGS) $(CLINK) -o $(KMC_BIN_DIR)/$@ $(KMC_MAIN_DIR)/kmer_counter.o $(KMC_MAIN_DIR)/mem_disk_file.o $(KMC_MAIN_DIR)/rev_byte.o $(KMC_MAIN_DIR)/mmer.o $(KMC_MAIN_DIR)/fastq_reader.o $(KMC_MAIN_DIR)/timer.o $(KMC_MAIN_DIR)/radix.o $(KMC_MAIN_DIR)/kb_completer.o $(KMC_MAIN_DIR)/kb_storer.o $(KMC_MAIN_DIR)/kmer.o $(BOOST_LIB)/libboost_thread.a $(BOOST_LIB)/libboost_filesystem.a $(BOOST_LIB)/libboost_system.a $(LDFLAGS) -lz -lbz2
++	$(CC) $(CPPFLAGS) $(CLINK) -o $(KMC_BIN_DIR)/$@ $(KMC_MAIN_DIR)/kmer_counter.o $(KMC_MAIN_DIR)/mem_disk_file.o $(KMC_MAIN_DIR)/rev_byte.o $(KMC_MAIN_DIR)/mmer.o $(KMC_MAIN_DIR)/fastq_reader.o $(KMC_MAIN_DIR)/timer.o $(KMC_MAIN_DIR)/radix.o $(KMC_MAIN_DIR)/kb_completer.o $(KMC_MAIN_DIR)/kb_storer.o $(KMC_MAIN_DIR)/kmer.o $(BOOST_LIB)/libboost_thread.a $(BOOST_LIB)/libboost_filesystem.a $(BOOST_LIB)/libboost_system.a $(LDFLAGS)
+ 
+ kmc_dump: $(KMC_DUMP_DIR)/nc_utils.o $(KMC_API_DIR)/mmer.o $(KMC_DUMP_DIR)/kmc_dump.o $(KMC_API_DIR)/kmc_file.o $(KMC_API_DIR)/kmer_api.o
+ 	-mkdir -p $(KMC_BIN_DIR)
diff --git a/debian/patches/remove-references-to-asmlib b/debian/patches/remove-references-to-asmlib
new file mode 100644
index 0000000..9ae0eac
--- /dev/null
+++ b/debian/patches/remove-references-to-asmlib
@@ -0,0 +1,44 @@
+Description: Removes all - include "libs/asmlib.h".
+This is a customised subroutine optimisaiton library
+that gives KMC a speed performance increase of ~0.66%
+when compared ot the native library.
+A decision was made togehter with upstream to remove
+this dependency for the Debian package.
+
+
+Index: b/kmer_counter/kmc.h
+===================================================================
+--- a/kmer_counter/kmc.h
++++ b/kmer_counter/kmc.h
+@@ -29,7 +29,6 @@
+ #include "kb_storer.h"
+ #include "s_mapper.h"
+ #include "splitter.h"
+-#include "libs/asmlib.h"
+ #include <boost/filesystem.hpp>
+ 
+ #ifdef DEVELOP_MODE
+Index: b/kmer_counter/mem_disk_file.cpp
+===================================================================
+--- a/kmer_counter/mem_disk_file.cpp
++++ b/kmer_counter/mem_disk_file.cpp
+@@ -10,7 +10,6 @@
+ */
+ 
+ #include "mem_disk_file.h"
+-#include "libs/asmlib.h"
+ 
+ //----------------------------------------------------------------------------------
+ // Constructor 
+Index: b/kmer_counter/radix.h
+===================================================================
+--- a/kmer_counter/radix.h
++++ b/kmer_counter/radix.h
+@@ -16,7 +16,6 @@
+ #include <iostream>
+ #include <omp.h>
+ #include <algorithm>
+-#include "libs/asmlib.h"
+ #include "defs.h"
+ #include "queues.h"
+ #include <boost/static_assert.hpp>
diff --git a/debian/patches/remove-use-of-asmlib-subroutines.patch b/debian/patches/remove-use-of-asmlib-subroutines.patch
new file mode 100644
index 0000000..22a89fa
--- /dev/null
+++ b/debian/patches/remove-use-of-asmlib-subroutines.patch
@@ -0,0 +1,141 @@
+Description: Removes all usage of the "A_mem" subroutines.
+The A_mem type of calls are defined in the asmlib library.
+
+Index: b/kmer_counter/defs.h
+===================================================================
+--- a/kmer_counter/defs.h
++++ b/kmer_counter/defs.h
+@@ -73,8 +73,6 @@ typedef float	count_t;
+ #define KMER_WORDS		((MAX_K + 31) / 32)
+ 
+ #ifdef _DEBUG
+-#define A_memcpy	memcpy
+-#define A_memset	memset
+ #endif
+ 
+ 
+Index: b/kmer_counter/kb_sorter.h
+===================================================================
+--- a/kmer_counter/kb_sorter.h
++++ b/kmer_counter/kb_sorter.h
+@@ -406,7 +406,7 @@ template <unsigned SIZE> void CKmerBinSo
+ template <unsigned SIZE> void CKmerBinSorter_Impl<CKmer<SIZE>, SIZE>::FromChildThread(CKmerBinSorter<CKmer<SIZE>, SIZE>& ptr, CKmer<SIZE>* thread_buffer, uint64 size)
+ {
+ 	lock_guard<mutex> lcx(ptr.expander_mtx);
+-	A_memcpy(ptr.buffer_input + ptr.input_pos, thread_buffer, size * sizeof(CKmer<SIZE>));
++	memcpy(ptr.buffer_input + ptr.input_pos, thread_buffer, size * sizeof(CKmer<SIZE>));
+ 	ptr.input_pos += size;
+ }
+ 
+@@ -1359,4 +1359,4 @@ template <typename KMER_T, unsigned SIZE
+ 
+ #endif
+ 
+-// ***** EOF
+\ No newline at end of file
++// ***** EOF
+Index: b/kmer_counter/kb_storer.cpp
+===================================================================
+--- a/kmer_counter/kb_storer.cpp
++++ b/kmer_counter/kb_storer.cpp
+@@ -156,7 +156,7 @@ void CKmerBinStorer::PutBinToTmpFile(uin
+ 		{
+ 			buf = get<0>(*p);
+ 			size = get<1>(*p);
+-			A_memcpy(tmp_buff + tmp_buff_pos, buf, size);
++			memcpy(tmp_buff + tmp_buff_pos, buf, size);
+ 			tmp_buff_pos += size;
+ 			pmm_bins->free(buf);
+ 		}
+Index: b/kmer_counter/mem_disk_file.cpp
+===================================================================
+--- a/kmer_counter/mem_disk_file.cpp
++++ b/kmer_counter/mem_disk_file.cpp
+@@ -78,7 +78,7 @@ size_t CMemDiskFile::Read(uchar * ptr, s
+ 		uint64 pos = 0;
+ 		for(auto& p : container)
+ 		{
+-			A_memcpy(ptr + pos, p.first, p.second);
++			memcpy(ptr + pos, p.first, p.second);
+ 			pos += p.second;
+ 			delete[] p.first;
+ 		}
+@@ -97,7 +97,7 @@ size_t CMemDiskFile::Write(const uchar *
+ 	if(memory_mode)
+ 	{
+ 		uchar *buf = new uchar[size * count];
+-		A_memcpy(buf, ptr, size * count);
++		memcpy(buf, ptr, size * count);
+ 		container.push_back(make_pair(buf, size * count));
+ 		return size * count;
+ 	}
+Index: b/kmer_counter/radix.cpp
+===================================================================
+--- a/kmer_counter/radix.cpp
++++ b/kmer_counter/radix.cpp
+@@ -72,7 +72,7 @@ void RadixOMP_uint8(uint32 *SourcePtr, u
+ 				
+ 				++privateByteCounter[byteValue];
+ 			}	
+-			A_memcpy(&ByteCounter[myID][0], privateByteCounter, sizeof(privateByteCounter));
++			memcpy(&ByteCounter[myID][0], privateByteCounter, sizeof(privateByteCounter));
+ 
+ 			#pragma omp barrier
+ 
+@@ -104,7 +104,7 @@ void RadixOMP_uint8(uint32 *SourcePtr, u
+ 			for (private_i = 0; private_i < 256; private_i++)
+ 				ByteCounter[myID][private_i] += globalHisto[private_i];
+ 
+-			A_memcpy(privateByteCounter, &ByteCounter[myID][0], sizeof(privateByteCounter));
++			memcpy(privateByteCounter, &ByteCounter[myID][0], sizeof(privateByteCounter));
+ 		
+ 			#pragma omp for schedule(static)
+ 			for(i = data_offset; i < SourceSize_in_bytes; i = i + rec_size)
+@@ -199,7 +199,7 @@ template<typename COUNTER_TYPE, typename
+ 				byteValue = *(reinterpret_cast<const uint8_t*>(&tempSource[i]) + ByteIndex);
+ 				++privateByteCounter[byteValue];
+ 			}	
+-			A_memcpy(&ByteCounter[myID][0], privateByteCounter, sizeof(privateByteCounter));
++			memcpy(&ByteCounter[myID][0], privateByteCounter, sizeof(privateByteCounter));
+ 
+ 			#pragma omp barrier
+ 
+@@ -230,7 +230,7 @@ template<typename COUNTER_TYPE, typename
+ 			for (private_i = 0; private_i < 256; private_i++)
+ 				ByteCounter[myID][private_i] += globalHisto[private_i];
+ 
+-			A_memcpy(privateByteCounter, &ByteCounter[myID][0], sizeof(privateByteCounter));
++			memcpy(privateByteCounter, &ByteCounter[myID][0], sizeof(privateByteCounter));
+ 		
+ 
+ 			#pragma omp for schedule(static)
+@@ -245,7 +245,7 @@ template<typename COUNTER_TYPE, typename
+ 				privateByteCounter[byteValue]++;
+ 
+ 				if(index_x == (BUFFER_WIDTH -1))
+-					A_memcpy ( &tempDest[privateByteCounter[byteValue] - (BUFFER_WIDTH)], &Buffer[byteValue * BUFFER_WIDTH], BUFFER_WIDTH *sizeof(uint64) );
++					memcpy ( &tempDest[privateByteCounter[byteValue] - (BUFFER_WIDTH)], &Buffer[byteValue * BUFFER_WIDTH], BUFFER_WIDTH *sizeof(uint64) );
+ 			} //end_for
+ 
+ 			INT_TYPE elemInBuffer;
+@@ -265,7 +265,7 @@ template<typename COUNTER_TYPE, typename
+ 					elemInBuffer = index_stop - index_start;
+ 
+ 				if(elemInBuffer != 0)
+-					A_memcpy ( &tempDest[privateByteCounter[private_i] - elemInBuffer], &Buffer[private_i * BUFFER_WIDTH + (privateByteCounter[private_i] - elemInBuffer)%BUFFER_WIDTH], (elemInBuffer)*sizeof(uint64) );
++					memcpy ( &tempDest[privateByteCounter[private_i] - elemInBuffer], &Buffer[private_i * BUFFER_WIDTH + (privateByteCounter[private_i] - elemInBuffer)%BUFFER_WIDTH], (elemInBuffer)*sizeof(uint64) );
+ 			
+ 			}
+ 			#pragma omp barrier
+Index: b/kmer_counter/kmc.h
+===================================================================
+--- a/kmer_counter/kmc.h
++++ b/kmer_counter/kmc.h
+@@ -164,7 +164,6 @@ template <typename KMER_T, unsigned SIZE
+ 
+ 	initialized = true; 
+ 
+-	SetMemcpyCacheLimit(8);			// Sets the asmlib's memcpy function to make copy without use of cache memory
+ }
+ 
+ //----------------------------------------------------------------------------------
diff --git a/debian/patches/removing-static-option-in-makefile b/debian/patches/removing-static-option-in-makefile
new file mode 100644
index 0000000..4415469
--- /dev/null
+++ b/debian/patches/removing-static-option-in-makefile
@@ -0,0 +1 @@
+Description: Removes the static compilation option
\ No newline at end of file
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..b081585
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,6 @@
+debian-dependent-makefile.patch
+remove-references-to-asmlib
+remove-use-of-asmlib-subroutines.patch
+change-kmc-zlib-and-libz2-to-deb-zlib-and-libbz2
+remove-call-to-asmlib-sub-in-kbsorter
+remove-embedded-libraries-from-makefile
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..ad78fa4
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,25 @@
+#!/usr/bin/make -f
+
+export DH_VERBOSE := 1
+DEBVERS := $(shell dpkg-parsechangelog | sed -n -e 's/^Version: //p')
+VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/^[[:digit:]]*://' -e 's/[~-].*//')
+OVERSION := $(shell echo '$(DEBVERS)' | sed -e 's/^[[:digit:]]*://' -e 's/[+].*//')
+
+
+mandir := $(CURDIR)/debian/man
+debfolder := $(CURDIR)/debian
+
+%:
+	dh $@
+
+override_dh_install:
+	dh_install
+
+override_dh_installman:
+	mkdir -p $(mandir)
+	$(debfolder)/usage_to_man
+	dh_installman --
+
+get-orig-source:
+	uscan --verbose --force-download --repack --compression gz --destdir=..
+	mv ../kmc_$(OVERSION).orig.tar.gz ../kmc_$(VERSION).orig.tar.gz
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..46ebe02
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
\ No newline at end of file
diff --git a/debian/upstream/metadata b/debian/upstream/metadata
new file mode 100644
index 0000000..d8b5812
--- /dev/null
+++ b/debian/upstream/metadata
@@ -0,0 +1,12 @@
+Reference:
+  Author: 
+  Title: 
+  Journal: 
+  Year: 
+  Volume: 
+  Number: 
+  Pages: 
+  DOI: 
+  PMID:
+  URL: 
+  eprint: 
diff --git a/debian/usage_to_man b/debian/usage_to_man
new file mode 100755
index 0000000..e69a4bb
--- /dev/null
+++ b/debian/usage_to_man
@@ -0,0 +1,140 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Data::Dumper;
+
+#Converts Fastaq python scripts usage into man pages.
+#The man pages are placed in the man folder of the main Fastaq directory
+
+createManPages();
+
+sub createManPages {
+
+  my $source= 'bin';
+  my $destination= '.';
+  my $app_name = 'KMC';
+
+
+  unless ( -d $destination ) {
+    system(mkdir $destination);
+  }
+
+  my @files;
+
+  push(@files,`ls $source/kmc*`);
+
+  if ( scalar @files > 0 ) {
+
+    print "Creating manpages\n";
+    for my $file ( @files ) {
+      $file =~ s/\n$//;
+
+      my $filename = $file;
+      $filename =~ s/$source\///;
+
+      my $uc_filename = uc($filename);
+      my $man_file = $filename;
+
+      $man_file = $destination . '/' . $man_file . '.1';
+
+      my $kmc_short_description = 'Count kmers in genomic sequences';
+      my $kmc_long_description = 'KMC—K-mer Counter is a utility designed for counting k-mers (sequences of consecutive k symbols) in a set of reads from genome sequencing projects.';
+      
+
+      my $cmd = "help2man -N -m $filename -n $filename --no-discard-stderr $file | sed 's/usage://gi'";
+      my @output;
+      push(@output, `$cmd`);
+
+      for my $line (@output) {
+	$line =~ s/\n$//;
+
+      }
+      my $ss_param_seen = 0;
+      my $ss_param_seen2 = 1;
+      my $ip_tag_seen = 0;
+      my @lines_not_to_print;
+      my @lines_to_print;
+
+      for (my $i = 0; $i < scalar @output; $i++) {
+
+
+	  my $output_line = $output[$i];
+
+	  $output_line =~ s/^(\.TH\s)([a-zA-Z0-9-]+)(\s.*)/$1 $filename $3/;
+	  $output_line =~ s/^(K\-Mer \\- )(kmc)/$2 - $kmc_short_description/;
+	  if ($output_line =~ m/^K\\-Mer Counter/) {
+	      $output_line = $kmc_long_description;
+	  }
+	  
+	  if ($output_line =~ m/^\.SS \"Parameters\:\"/ && ! $ss_param_seen) {
+	      push(@lines_not_to_print, $i);
+	      push(@lines_not_to_print, $i + 1);
+	      push(@lines_not_to_print, $i + 2);
+	      push(@lines_not_to_print, $i + 3);
+
+	      $ss_param_seen = 1;
+	      $ss_param_seen2 = 0;
+
+	  }
+	  elsif ($output_line =~ m/^\.IP/ && ! $ip_tag_seen) {
+	      $output_line = '.SH SYNOPSIS';
+	      if ($output[$i + 2] =~ /^kmc/) {
+		  $output[$i +2] = ".PP\n" . $output[$i + 2];
+	      }
+	      $ip_tag_seen = 1;
+	  }
+	  elsif ($output_line =~ m/^\.SS ""/) {
+	      push(@lines_not_to_print, $i);
+	      push(@lines_not_to_print, $i + 1);
+	      push(@lines_not_to_print, $i + 2);
+	      push(@lines_not_to_print, $i + 3);
+	  }
+	  elsif ($output_line =~ m/^Example:/) {
+	      $output_line = '.SH EXAMPLES';
+	      $output[$i + 2] = ".PP\n" . $output[$i + 2];
+
+	  }
+	  elsif ($output_line =~ m/^\.SS \"Parameters\:\"/ && $ss_param_seen && ! $ss_param_seen2) {
+	      last;
+
+	  }
+
+	  if ( ! grep( /^$i$/, @lines_not_to_print ) ){
+	      #print "$output_line\n";
+	      push(@lines_to_print, $output_line);
+	  }
+
+
+      }
+      print Dumper(\@lines_not_to_print);
+      open (my $man_fh, ">", $man_file);
+      for my $line(@lines_to_print) {
+	  print $man_fh "$line\n";
+      }
+      close($man_fh);
+      print "Manpage creation complete\n";
+    }
+  }
+}
+
+sub writeAuthorAndCopyright {
+
+  my ($man_fh,$filename) = @_;
+
+  my $author_blurb = <<END_OF_AUTHOR_BLURB;
+.SH "AUTHOR"
+.sp
+$filename was originally written by Martin Hunt (mh12\@sanger.ac.uk)
+END_OF_AUTHOR_BLURB
+
+  print $man_fh "$author_blurb\n";
+
+  my $copyright_blurb = <<'END_OF_C_BLURB';
+.SH "COPYING"
+.sp
+Wellcome Trust Sanger Institute Copyright \(co 2013 Wellcome Trust Sanger Institute 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 3 of the License, or (at your option) any later version\&.
+END_OF_C_BLURB
+
+  print $man_fh "$copyright_blurb\n";
+
+}
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..bf30b45
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,5 @@
+version=3
+
+opts=dversionmangle=s/[~\+]dfsg[0-9]*// \
+	https://github.com/js21/kmc/releases .*/archive/v(\d[\d.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz)
+

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



More information about the debian-med-commit mailing list