~ruther/guix-local

b81cb1f2f3c9eaa7faea60d42d9a24ada8b5a290 — Ben Woodcroft 10 years ago c6c86cd
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>
M gnu-system.am => gnu-system.am +1 -0
@@ 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		\

M gnu/packages/bioinformatics.scm => gnu/packages/bioinformatics.scm +2 -1
@@ 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)

A gnu/packages/patches/bedtools-32bit-compilation.patch => gnu/packages/patches/bedtools-32bit-compilation.patch +171 -0
@@ 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);