gnu: bedtools: Add patch to fix compilation on 32 bit systems.

* gnu/packages/patches/bedtools-32bit-compilation.patch: New file.
* gnu/packages/bioinformatics.scm (bedtools)[source]: Add patch.
* gnu-system.am (dist_patch_DATA): Register patch.

Signed-off-by: Andreas Enge <andreas@enge.fr>
master
Ben Woodcroft 2015-07-25 23:32:55 +10:00 committed by Andreas Enge
parent c6c86cd7a5
commit b81cb1f2f3
3 changed files with 174 additions and 1 deletions

View File

@ -392,6 +392,7 @@ dist_patch_DATA = \
gnu/packages/patches/avahi-localstatedir.patch \
gnu/packages/patches/avrdude-fix-libusb.patch \
gnu/packages/patches/bash-completion-directories.patch \
gnu/packages/patches/bedtools-32bit-compilation.patch \
gnu/packages/patches/bowtie-fix-makefile.patch \
gnu/packages/patches/bigloo-gc-shebangs.patch \
gnu/packages/patches/binutils-ld-new-dtags.patch \

View File

@ -204,7 +204,8 @@ computational cluster.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0lnxrjvs3nnmb4bmskag1wg3h2hd80przz5q3xd0bvs7vyxrvpbl"))))
"0lnxrjvs3nnmb4bmskag1wg3h2hd80przz5q3xd0bvs7vyxrvpbl"))
(patches (list (search-patch "bedtools-32bit-compilation.patch")))))
(build-system gnu-build-system)
(native-inputs `(("python" ,python-2)))
(inputs `(("samtools" ,samtools)

View File

@ -0,0 +1,171 @@
Fixed in upstream, see
https://github.com/arq5x/bedtools2/issues/271
From b47dbefcb57f8e6c4fe397f64346338620740b71 Mon Sep 17 00:00:00 2001
From: arq5x <arq5x@virginia.edu>
Date: Wed, 15 Jul 2015 15:15:23 -0600
Subject: [PATCH] settle on uint32_t signature for QuickString. Resolves #267
and #271?
---
src/coverageFile/coverageFile.cpp | 24 ++++++++++++------------
src/utils/general/QuickString.cpp | 27 ++++++++++++++-------------
src/utils/general/QuickString.h | 6 +++---
3 files changed, 29 insertions(+), 28 deletions(-)
diff --git a/src/coverageFile/coverageFile.cpp b/src/coverageFile/coverageFile.cpp
index 859cfdc..0fb544b 100644
--- a/src/coverageFile/coverageFile.cpp
+++ b/src/coverageFile/coverageFile.cpp
@@ -83,11 +83,11 @@ void CoverageFile::giveFinalReport(RecordOutputMgr *outputMgr) {
float depthPct = (float)basesAtDepth / (float)_totalQueryLen;
_finalOutput = "all\t";
- _finalOutput.append(depth);
+ _finalOutput.append(static_cast<uint32_t>(depth));
_finalOutput.append("\t");
- _finalOutput.append(basesAtDepth);
+ _finalOutput.append(static_cast<uint32_t>(basesAtDepth));
_finalOutput.append("\t");
- _finalOutput.append(_totalQueryLen);
+ _finalOutput.append(static_cast<uint32_t>(_totalQueryLen));
_finalOutput.append("\t");
format(depthPct);
@@ -138,7 +138,7 @@ size_t CoverageFile::countBasesAtDepth(size_t depth) {
void CoverageFile::doCounts(RecordOutputMgr *outputMgr, RecordKeyVector &hits)
{
- _finalOutput = hits.size();
+ _finalOutput = static_cast<uint32_t>(hits.size());
outputMgr->printRecord(hits.getKey(), _finalOutput);
}
@@ -147,9 +147,9 @@ void CoverageFile::doPerBase(RecordOutputMgr *outputMgr, RecordKeyVector &hits)
//loop through all bases in query, printing full record and metrics for each
const Record * queryRec = hits.getKey();
for (size_t i= 0; i < _queryLen; i++) {
- _finalOutput = i +1;
+ _finalOutput = static_cast<uint32_t>(i+1);
_finalOutput.append("\t");
- _finalOutput.append(_depthArray[i]);
+ _finalOutput.append(static_cast<uint32_t>(_depthArray[i]));
outputMgr->printRecord(queryRec, _finalOutput);
}
@@ -181,11 +181,11 @@ void CoverageFile::doHist(RecordOutputMgr *outputMgr, RecordKeyVector &hits)
size_t numBasesAtDepth = iter->second;
float coveredBases = (float)numBasesAtDepth / (float)_queryLen;
- _finalOutput = depth;
+ _finalOutput = static_cast<uint32_t>(depth);
_finalOutput.append("\t");
- _finalOutput.append(numBasesAtDepth);
+ _finalOutput.append(static_cast<uint32_t>(numBasesAtDepth));
_finalOutput.append("\t");
- _finalOutput.append(_queryLen);
+ _finalOutput.append(static_cast<uint32_t>(_queryLen));
_finalOutput.append("\t");
format(coveredBases);
@@ -199,11 +199,11 @@ void CoverageFile::doDefault(RecordOutputMgr *outputMgr, RecordKeyVector &hits)
size_t nonZeroBases = _queryLen - countBasesAtDepth(0);
float coveredBases = (float)nonZeroBases / (float)_queryLen;
- _finalOutput = hits.size();
+ _finalOutput = static_cast<uint32_t>(hits.size());
_finalOutput.append("\t");
- _finalOutput.append(nonZeroBases);
+ _finalOutput.append(static_cast<uint32_t>(nonZeroBases));
_finalOutput.append("\t");
- _finalOutput.append(_queryLen);
+ _finalOutput.append(static_cast<uint32_t>(_queryLen));
_finalOutput.append("\t");
format(coveredBases);
diff --git a/src/utils/general/QuickString.cpp b/src/utils/general/QuickString.cpp
index 0757009..a83263e 100644
--- a/src/utils/general/QuickString.cpp
+++ b/src/utils/general/QuickString.cpp
@@ -105,11 +105,11 @@ QuickString &QuickString::operator = (uint32_t val) {
return *this;
}
-QuickString &QuickString::operator = (size_t val) {
- clear();
- append(val);
- return *this;
-}
+// QuickString &QuickString::operator = (size_t val) {
+// clear();
+// append(val);
+// return *this;
+// }
QuickString &QuickString::operator = (float val) {
clear();
@@ -158,10 +158,11 @@ QuickString &QuickString::operator += (uint32_t num) {
return *this;
}
-QuickString &QuickString::operator += (size_t num) {
- append(num);
- return *this;
-}
+// QuickString &QuickString::operator += (size_t num) {
+// append(num);
+// return *this;
+// }
+
QuickString &QuickString::operator += (float num) {
append(num);
return *this;
@@ -273,12 +274,12 @@ void QuickString::append(int num) {
}
void QuickString::append(uint32_t num) {
- int2str((int)num, *this, true);
+ int2str((int)num, *this, true);
}
-void QuickString::append(size_t num) {
- int2str((int)num, *this, true);
-}
+// void QuickString::append(size_t num) {
+// int2str((int)num, *this, true);
+// }
void QuickString::append(float num) {
append(ToString(num));
diff --git a/src/utils/general/QuickString.h b/src/utils/general/QuickString.h
index b43fdfc..6e6fa94 100644
--- a/src/utils/general/QuickString.h
+++ b/src/utils/general/QuickString.h
@@ -38,7 +38,7 @@ class QuickString {
QuickString &operator = (char);
QuickString &operator = (int);
QuickString &operator = (uint32_t);
- QuickString &operator = (size_t);
+ //QuickString &operator = (size_t);
QuickString &operator = (float);
QuickString &operator = (double);
QuickString &operator += (const QuickString &);
@@ -47,7 +47,7 @@ class QuickString {
QuickString &operator += (char);
QuickString &operator += (int);
QuickString &operator += (uint32_t);
- QuickString &operator += (size_t);
+ //QuickString &operator += (size_t);
QuickString &operator += (float);
QuickString &operator += (double);
@@ -74,7 +74,7 @@ class QuickString {
//for better performance.
void append(int num);
void append(uint32_t num);
- void append(size_t num);
+ //void append(size_t num);
void append(float num);
void append(double num);