summary refs log tree commit diff
path: root/pkgs/tools/networking/polygraph
diff options
context:
space:
mode:
authorLuca Bruno <lucabru@src.gnome.org>2015-02-12 14:28:31 +0100
committerLuca Bruno <lucabru@src.gnome.org>2015-02-12 14:29:10 +0100
commit3b17a2054b40d870a0b44ae4bf8d2272a2f48175 (patch)
tree21c038c46492c1a7233d5341f369b1533350d2bf /pkgs/tools/networking/polygraph
parent3a17654b711620a8dbc7d8f86b54bbcea40066a3 (diff)
downloadnixpkgs-3b17a2054b40d870a0b44ae4bf8d2272a2f48175.tar
nixpkgs-3b17a2054b40d870a0b44ae4bf8d2272a2f48175.tar.gz
nixpkgs-3b17a2054b40d870a0b44ae4bf8d2272a2f48175.tar.bz2
nixpkgs-3b17a2054b40d870a0b44ae4bf8d2272a2f48175.tar.lz
nixpkgs-3b17a2054b40d870a0b44ae4bf8d2272a2f48175.tar.xz
nixpkgs-3b17a2054b40d870a0b44ae4bf8d2272a2f48175.tar.zst
nixpkgs-3b17a2054b40d870a0b44ae4bf8d2272a2f48175.zip
polygraph: new package
Performance testing tool for caching proxies, origin server accelerators, L4/7 switches, content filters, and other Web intermediaries

http://www.web-polygraph.org
Diffstat (limited to 'pkgs/tools/networking/polygraph')
-rw-r--r--pkgs/tools/networking/polygraph/default.nix21
-rw-r--r--pkgs/tools/networking/polygraph/fix_build.patch77
2 files changed, 98 insertions, 0 deletions
diff --git a/pkgs/tools/networking/polygraph/default.nix b/pkgs/tools/networking/polygraph/default.nix
new file mode 100644
index 00000000000..09357e87da0
--- /dev/null
+++ b/pkgs/tools/networking/polygraph/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, openssl, zlib, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "polygraph-4.3.2";
+
+  src = fetchurl {
+    url = "http://www.web-polygraph.org/downloads/srcs/${name}-src.tgz";
+    sha256 = "1fv9jpcicfsgsmghkykqif6l6w7nwvk5xbdmpv72jbrwzx44845h";
+  };
+
+  buildInputs = [ openssl zlib ncurses ];
+  
+  patches = [ ./fix_build.patch ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.web-polygraph.org;
+    description = "Performance testing tool for caching proxies, origin server accelerators, L4/7 switches, content filters, and other Web intermediaries";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.lethalman ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/networking/polygraph/fix_build.patch b/pkgs/tools/networking/polygraph/fix_build.patch
new file mode 100644
index 00000000000..96832d72037
--- /dev/null
+++ b/pkgs/tools/networking/polygraph/fix_build.patch
@@ -0,0 +1,77 @@
+Description: Fix ftbfs with GCC-4.7.
+Author: Mònica Ramírez Arceda <monica@debian.org>
+Bug-Debian: http://bugs.debian.org/667326
+Last-Update: 2012-05-11
+
+--- a/src/xstd/Heap.h
++++ b/src/xstd/Heap.h
+@@ -23,7 +23,7 @@
+ 		const Item &top() const { return this->theItems[1]; }
+ 		Item &at(int idx) { return this->theItems[idx+1]; }
+ 
+-		void add(Item v) { append(v); floatUp(++theCnt); }
++		void add(Item v) { this->append(v); floatUp(++theCnt); }
+ 		void skip() { this->theItems[1] = this->theItems[theCnt--]; this->theCount--; sinkDown(1); }
+ 		Item shift() { const Item v = this->theItems[1]; skip(); return v; }
+ 
+--- a/src/xstd/Ring.h
++++ b/src/xstd/Ring.h
+@@ -22,11 +22,11 @@
+ 		int size() const { return Array<Item>::size(); }
+ 		bool empty() const { return this->theInOff <= this->theOutOff; }
+ 		bool full() const { return count() >= this->theCapacity; }
+-		const Item &top(int off = 0) const { return item((this->theOutOff+off) % this->theCapacity); }
++		const Item &top(int off = 0) const { return this->item((this->theOutOff+off) % this->theCapacity); }
+ 
+-		Item &top(int off = 0) { return item((this->theOutOff+off) % this->theCapacity); }
+-		void enqueue(Item i) { Assert(!full()); item(this->theInOff++ % this->theCapacity) = i; check(); }
+-		Item dequeue() { return item(this->theOutOff++ % this->theCapacity); }
++		Item &top(int off = 0) { return this->item((this->theOutOff+off) % this->theCapacity); }
++		void enqueue(Item i) { Assert(!full()); this->item(this->theInOff++ % this->theCapacity) = i; check(); }
++		Item dequeue() { return this->item(this->theOutOff++ % this->theCapacity); }
+ 
+ 		void reset() { this->theInOff = this->theOutOff = 0; }
+ 		inline void resize(int aCap);
+--- a/src/runtime/StatPhase.cc
++++ b/src/runtime/StatPhase.cc
+@@ -413,12 +413,12 @@
+ 						break;
+ 				}
+ 		} else {
+-			static CompoundXactInfo &compound = *CompoundXactInfo::Create();
+-			compound.exchanges = 1;
+-			compound.reqSize = reqSize;
+-			compound.repSize = repSize;
+-			compound.lifeTime = repTime;
+-			compound.record(rec.theIsolated);
++			static CompoundXactInfo &compound2 = *CompoundXactInfo::Create();
++			compound2.exchanges = 1;
++			compound2.reqSize = reqSize;
++			compound2.repSize = repSize;
++			compound2.lifeTime = repTime;
++			compound2.record(rec.theIsolated);
+ 		}
+ 
+ 		if (x->cookiesSent() > 0)
+--- a/src/cache/CacheEntryHash.cc
++++ b/src/cache/CacheEntryHash.cc
+@@ -14,7 +14,7 @@
+ 
+ CacheEntryHash::CacheEntryHash(int aCapacity): theCount(0) {
+ 	theCapacity = (aCapacity + aCapacity/3 + 7) | 1;
+-	theIndex = new (CacheEntry*[theCapacity]);
++	theIndex = new (CacheEntry*[this->theCapacity]);
+ 	memset(theIndex, 0, sizeof(CacheEntry*)*theCapacity);
+ }
+ 
+--- a/src/tools/IntIntHash.cc
++++ b/src/tools/IntIntHash.cc
+@@ -13,7 +13,7 @@
+ 
+ IntIntHash::IntIntHash(int aCapacity): theHashCap(0) {
+ 	theHashCap = (aCapacity + aCapacity/3 + 7) | 1;
+-	theIndex = new (IntIntHashItem*[theHashCap]);
++	theIndex = new (IntIntHashItem*[this->theHashCap]);
+ 	memset(theIndex, 0, sizeof(IntIntHashItem*)*theHashCap);
+ }
+ 
\ No newline at end of file