On 25/07/15 23:10, Andreas Enge wrote:

Now that 2.24.0 is in git master, could you please prepare your patch with
respect to this version? In particular, the above two lines should not
appear any more, and the commit message will have to be modified.

Attached. Lemme know if I messed up.
>From 2a09480f4ac5c02c706d39be1cdaf6e6e51f9670 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrust...@gmail.com>
Date: Sat, 25 Jul 2015 23:32:55 +1000
Subject: [PATCH] gnu: bedtools: settle on uint32_t signature for QuickString.

* gnu/packages/patches/bedtools-32bit-compilation.patch: New file.
* gnu/packages/bioinformatics.scm (bedtools)[source]: Add patch.
---
 gnu-system.am                                      |   1 +
 gnu/packages/bioinformatics.scm                    |   5 +-
 .../patches/bedtools-32bit-compilation.patch       | 168 +++++++++++++++++++++
 3 files changed, 173 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/bedtools-32bit-compilation.patch

diff --git a/gnu-system.am b/gnu-system.am
index f4e121a..d6635fe 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -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		\
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 92b9394..e01e428 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -204,7 +204,10 @@ computational cluster.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0lnxrjvs3nnmb4bmskag1wg3h2hd80przz5q3xd0bvs7vyxrvpbl"))))
+                "0lnxrjvs3nnmb4bmskag1wg3h2hd80przz5q3xd0bvs7vyxrvpbl"))
+              ;; Fixed in upstream, see
+              ;; https://github.com/arq5x/bedtools2/issues/271
+              (patches (list (search-patch "bedtools-32bit-compilation.patch")))))
     (build-system gnu-build-system)
     (native-inputs `(("python" ,python-2)))
     (inputs `(("samtools" ,samtools)
diff --git a/gnu/packages/patches/bedtools-32bit-compilation.patch b/gnu/packages/patches/bedtools-32bit-compilation.patch
new file mode 100644
index 0000000..0a4e710
--- /dev/null
+++ b/gnu/packages/patches/bedtools-32bit-compilation.patch
@@ -0,0 +1,168 @@
+From b47dbefcb57f8e6c4fe397f64346338620740b71 Mon Sep 17 00:00:00 2001
+From: arq5x <ar...@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);
+ 
+
-- 
2.4.3

Reply via email to