[db4o] 8.0

Tom Callaway spot at fedoraproject.org
Wed Jun 29 15:59:30 UTC 2011


commit 06139e09d2650576d7ce1e7d6b5983a4d951acb4
Author: Tom "spot" Callaway <tcallawa at redhat.com>
Date:   Wed Jun 29 11:59:17 2011 -0400

    8.0

 db4o-8.0-CSOptional.patch          |   21 +
 db4o-8.0-CecilFix.patch            |   41 ++
 db4o-8.0-db4otool-testfix.patch    |   30 ++
 db4o-8.0-extensions-make-fix.patch |    9 +
 db4o-8.0-make.patch                |  124 ++++++
 db4o-8.0-mono-reflection.patch     |   20 +
 db4o-8.0-more-makefile-fixes.patch |   17 +
 db4o-8.0-noGetOptions.patch        |  815 +++++++++++++++++++++++++++++++++++
 db4o-8.0-noGetOptions2.patch       |  823 ++++++++++++++++++++++++++++++++++++
 db4o.spec                          |   70 ++--
 sources                            |    2 +-
 11 files changed, 1932 insertions(+), 40 deletions(-)
---
diff --git a/db4o-8.0-CSOptional.patch b/db4o-8.0-CSOptional.patch
new file mode 100644
index 0000000..ec5044f
--- /dev/null
+++ b/db4o-8.0-CSOptional.patch
@@ -0,0 +1,21 @@
+diff -up db4o-8.0/src/Db4objects.Db4o.Tests/Makefile.CSOptional db4o-8.0/src/Db4objects.Db4o.Tests/Makefile
+--- db4o-8.0/src/Db4objects.Db4o.Tests/Makefile.CSOptional	2011-05-13 14:32:00.732687619 -0400
++++ db4o-8.0/src/Db4objects.Db4o.Tests/Makefile	2011-05-13 14:32:24.535384191 -0400
+@@ -3,5 +3,5 @@ include ../include.mk
+ 
+ TARGET = exe
+ ASSEMBLY = $(TESTS)
+-REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(CS) -r:$(OUTDIR)/$(OPTIONAL) -r:$(OUTDIR)/$(UNIT) -r:$(OUTDIR)/$(UNIT_EXT) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(CECIL) -r:$(FLOWANALYSIS) -r:System.Drawing 
++REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(CS) -r:$(OUTDIR)/$(CS_OPTIONAL) -r:$(OUTDIR)/$(OPTIONAL) -r:$(OUTDIR)/$(UNIT) -r:$(OUTDIR)/$(UNIT_EXT) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(CECIL) -r:$(FLOWANALYSIS) -r:System.Drawing 
+ OPT_MCS_FLAGS = -main:Db4objects.Db4o.Tests.AllTests
+diff -up db4o-8.0/src/include.mk.CSOptional db4o-8.0/src/include.mk
+--- db4o-8.0/src/include.mk.CSOptional	2011-05-13 14:30:44.247662105 -0400
++++ db4o-8.0/src/include.mk	2011-05-13 14:31:15.855259488 -0400
+@@ -10,6 +10,7 @@ RESPONSE_FILE = $(WORKDIR)/sources
+ CORE = Db4objects.Db4o.dll
+ CS = Db4objects.Db4o.CS.dll
+ OPTIONAL = Db4objects.Db4o.Optional.dll
++CS_OPTIONAL = Db4objects.Db4o.CS.Optional.dll
+ TESTS = Db4objects.Db4o.Tests.exe
+ UNIT = Db4oUnit.dll
+ UNIT_EXT = Db4oUnit.Extensions.dll
diff --git a/db4o-8.0-CecilFix.patch b/db4o-8.0-CecilFix.patch
new file mode 100644
index 0000000..cf0b645
--- /dev/null
+++ b/db4o-8.0-CecilFix.patch
@@ -0,0 +1,41 @@
+diff -up db4o-8.0/src/Db4oTool/Db4oTool/Core/CecilReflector.cs.CecilFix db4o-8.0/src/Db4oTool/Db4oTool/Core/CecilReflector.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool/Core/CecilReflector.cs.CecilFix	2011-01-28 22:15:16.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool/Core/CecilReflector.cs	2011-05-13 13:25:36.586593204 -0400
+@@ -192,6 +192,17 @@ namespace Db4oTool.Core
+ 			                       	});
+ 		}
+ 
++		public AssemblyDefinition Resolve(string fullName, ReaderParameters parameters)
++		{
++			if (fullName == null)
++				throw new ArgumentNullException ("fullName");
++
++			 return InternalResolve(delegate(IAssemblyResolver resolver)
++						{
++							return resolver.Resolve(AssemblyNameReference.Parse (fullName), parameters);
++						});
++		}
++
+ 		public AssemblyDefinition Resolve(AssemblyNameReference name)
+ 		{
+ 			return InternalResolve(delegate(IAssemblyResolver resolver)
+@@ -200,6 +211,19 @@ namespace Db4oTool.Core
+ 									});
+ 		}
+ 
++		public AssemblyDefinition Resolve(AssemblyNameReference name, ReaderParameters parameters)
++		{
++			if (name == null)
++				throw new ArgumentNullException ("name");
++			if (parameters == null)
++				parameters = new ReaderParameters ();
++
++			return InternalResolve(delegate(IAssemblyResolver resolver)
++									{
++										return resolver.Resolve(name, parameters);
++									});
++		}
++
+ 		private AssemblyDefinition InternalResolve(Function<IAssemblyResolver, AssemblyDefinition> @delegate)
+ 		{
+ 			foreach (IAssemblyResolver resolver in _resolvers)
diff --git a/db4o-8.0-db4otool-testfix.patch b/db4o-8.0-db4otool-testfix.patch
new file mode 100644
index 0000000..278cec1
--- /dev/null
+++ b/db4o-8.0-db4otool-testfix.patch
@@ -0,0 +1,30 @@
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/ILPatternTestCase.cs.TestFix db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/ILPatternTestCase.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/ILPatternTestCase.cs.TestFix	2011-05-13 14:04:04.122202528 -0400
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/ILPatternTestCase.cs	2011-05-13 14:11:10.565568075 -0400
+@@ -72,7 +72,7 @@ namespace Db4oTool.Tests.Core
+ 
+ 		static MethodDefinition CreateTestMethod(Emitter emitter)
+ 		{
+-			TypeReference type = new TypeReference ("", "Test", null);
++			TypeReference type = new TypeReference ("", "Test", null, null);
+ 			MethodDefinition test = new MethodDefinition("Test", MethodAttributes.Public, type);
+ 			emitter(test.Body.GetILProcessor());
+ 			return test;
+@@ -80,7 +80,7 @@ namespace Db4oTool.Tests.Core
+ 
+ 		private static void TestSequence1(ILProcessor il)
+ 		{
+-			TypeReference type = new TypeReference("", "Test", null);
++			TypeReference type = new TypeReference("", "Test", null, null);
+ 			FieldDefinition blank = new FieldDefinition("Test", FieldAttributes.Public, type);
+ 			il.Emit(OpCodes.Nop);
+ 			il.Emit(OpCodes.Ldsfld, blank);
+@@ -90,7 +90,7 @@ namespace Db4oTool.Tests.Core
+ 
+ 		private static void TestSequence2(ILProcessor il)
+ 		{
+-			TypeReference type = new TypeReference ("", "Test", null);
++			TypeReference type = new TypeReference ("", "Test", null, null);
+ 			FieldDefinition blank = new FieldDefinition("Test", FieldAttributes.Public, type);
+ 			il.Emit(OpCodes.Nop);
+ 			il.Emit(OpCodes.Ldfld, blank);
diff --git a/db4o-8.0-extensions-make-fix.patch b/db4o-8.0-extensions-make-fix.patch
new file mode 100644
index 0000000..1afba78
--- /dev/null
+++ b/db4o-8.0-extensions-make-fix.patch
@@ -0,0 +1,9 @@
+diff -up db4o-8.0/src/Db4oUnit.Extensions/Makefile.CSFix db4o-8.0/src/Db4oUnit.Extensions/Makefile
+--- db4o-8.0/src/Db4oUnit.Extensions/Makefile.CSFix	2011-05-13 13:45:55.319569035 -0400
++++ db4o-8.0/src/Db4oUnit.Extensions/Makefile	2011-05-13 13:48:00.296921933 -0400
+@@ -3,4 +3,4 @@ include ../include.mk
+ 
+ TARGET = library
+ ASSEMBLY = $(UNIT_EXT)
+-REFERENCES = -r:$(OUTDIR)/$(UNIT) -r:$(OUTDIR)/$(CORE)
++REFERENCES = -r:$(OUTDIR)/$(UNIT) -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(CS) -r:$(OUTDIR)/$(OPTIONAL)
diff --git a/db4o-8.0-make.patch b/db4o-8.0-make.patch
new file mode 100644
index 0000000..8221696
--- /dev/null
+++ b/db4o-8.0-make.patch
@@ -0,0 +1,124 @@
+diff -up db4o-8.0/src/Db4objects.Db4o.Instrumentation/Makefile.makepatch db4o-8.0/src/Db4objects.Db4o.Instrumentation/Makefile
+--- db4o-8.0/src/Db4objects.Db4o.Instrumentation/Makefile.makepatch	2011-01-28 20:16:56.000000000 -0500
++++ db4o-8.0/src/Db4objects.Db4o.Instrumentation/Makefile	2011-05-11 16:57:41.158881213 -0400
+@@ -1,8 +1,8 @@
+ 
+-include ../../db4o.net/include.mk
++include ../include.mk
+ 
+-OUTDIR = ../../db4o.net/bin
++OUTDIR = ../bin
+ 
+ TARGET = library
+ ASSEMBLY = $(INSTR)
+-REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(CECIL) -r:$(OUTDIR)/$(FLOWANALYSIS)
++REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(CECIL) -r:$(FLOWANALYSIS)
+diff -up db4o-8.0/src/Db4objects.Db4o.Linq/Makefile.makepatch db4o-8.0/src/Db4objects.Db4o.Linq/Makefile
+--- db4o-8.0/src/Db4objects.Db4o.Linq/Makefile.makepatch	2011-01-28 20:16:46.000000000 -0500
++++ db4o-8.0/src/Db4objects.Db4o.Linq/Makefile	2011-05-11 16:57:41.158881213 -0400
+@@ -1,8 +1,8 @@
+ 
+-include ../../db4o.net/include.mk
++include ../include.mk
+ 
+-OUTDIR = ../../db4o.net/bin
++OUTDIR = ../bin
+ 
+ TARGET = library
+ ASSEMBLY = Db4objects.Db4o.Linq.dll
+-REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(CECIL) -r:$(OUTDIR)/$(FLOWANALYSIS)
++REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(CECIL) -r:$(FLOWANALYSIS)
+diff -up db4o-8.0/src/Db4objects.Db4o.Linq.Tests/Makefile.makepatch db4o-8.0/src/Db4objects.Db4o.Linq.Tests/Makefile
+--- db4o-8.0/src/Db4objects.Db4o.Linq.Tests/Makefile.makepatch	2011-01-28 20:16:52.000000000 -0500
++++ db4o-8.0/src/Db4objects.Db4o.Linq.Tests/Makefile	2011-05-11 16:57:41.158881213 -0400
+@@ -3,5 +3,5 @@ include ../include.mk
+ 
+ TARGET = exe
+ ASSEMBLY = $(LINQ_TESTS)
+-REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(UNIT) -r:$(OUTDIR)/$(UNIT_EXT) -r:$(OUTDIR)/$(LINQ) -r:$(OUTDIR)/$(CECIL) -r:$(OUTDIR)/$(FLOWANALYSIS)
++REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(UNIT) -r:$(OUTDIR)/$(UNIT_EXT) -r:$(OUTDIR)/$(LINQ) -r:$(CECIL) -r:$(FLOWANALYSIS)
+ OPT_MCS_FLAGS = -main:Db4objects.Db4o.Linq.Tests.AllTests
+diff -up db4o-8.0/src/Db4objects.Db4o.NativeQueries/Makefile.makepatch db4o-8.0/src/Db4objects.Db4o.NativeQueries/Makefile
+--- db4o-8.0/src/Db4objects.Db4o.NativeQueries/Makefile.makepatch	2011-01-28 20:16:44.000000000 -0500
++++ db4o-8.0/src/Db4objects.Db4o.NativeQueries/Makefile	2011-05-11 16:57:41.159881200 -0400
+@@ -1,8 +1,8 @@
+ 
+-include ../../db4o.net/include.mk
++include ../include.mk
+ 
+-OUTDIR = ../../db4o.net/bin
++OUTDIR = ../bin
+ 
+ TARGET = library
+ ASSEMBLY = $(NQ)
+-REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(CECIL) -r:$(OUTDIR)/$(FLOWANALYSIS)
++REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(INSTR) -r:$(CECIL) -r:$(FLOWANALYSIS)
+diff -up db4o-8.0/src/Db4objects.Db4o.Tests/Makefile.makepatch db4o-8.0/src/Db4objects.Db4o.Tests/Makefile
+--- db4o-8.0/src/Db4objects.Db4o.Tests/Makefile.makepatch	2011-01-28 20:16:34.000000000 -0500
++++ db4o-8.0/src/Db4objects.Db4o.Tests/Makefile	2011-05-11 17:00:25.522811400 -0400
+@@ -1,7 +1,7 @@
+ 
+ include ../include.mk
+-
+-TARGET = exe
+-ASSEMBLY = $(TESTS)
+-REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(CS) -r:$(OUTDIR)/$(OPTIONAL) -r:$(OUTDIR)/$(UNIT) -r:$(OUTDIR)/$(UNIT_EXT) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(OUTDIR)/$(CECIL) -r:$(OUTDIR)/$(FLOWANALYSIS) -r:System.Drawing 
+-OPT_MCS_FLAGS = -main:Db4objects.Db4o.Tests.AllTests
++
++TARGET = exe
++ASSEMBLY = $(TESTS)
++REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(CS) -r:$(OUTDIR)/$(OPTIONAL) -r:$(OUTDIR)/$(UNIT) -r:$(OUTDIR)/$(UNIT_EXT) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(CECIL) -r:$(FLOWANALYSIS) -r:System.Drawing 
++OPT_MCS_FLAGS = -main:Db4objects.Db4o.Tests.AllTests
+diff -up db4o-8.0/src/Db4oTool/Db4oTool/Makefile.makepatch db4o-8.0/src/Db4oTool/Db4oTool/Makefile
+--- db4o-8.0/src/Db4oTool/Db4oTool/Makefile.makepatch	2011-01-28 20:16:52.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool/Makefile	2011-05-11 16:59:46.702299812 -0400
+@@ -1,8 +1,8 @@
+ 
+-include ../../include.mk
+-
++include ../../include.mk
++
+ OUTDIR = ../../bin
+-
+-TARGET = exe
+-ASSEMBLY = $(TOOL)
+-REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(OPTIONAL) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(OUTDIR)/$(CECIL) -r:$(OUTDIR)/$(FLOWANALYSIS) -r:$(OUTDIR)/$(GETOPTIONS)
++
++TARGET = exe
++ASSEMBLY = $(TOOL)
++REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(OPTIONAL) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(CECIL) -r:$(FLOWANALYSIS) -r:$(GETOPTIONS)
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/Makefile.makepatch db4o-8.0/src/Db4oTool/Db4oTool.Tests/Makefile
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/Makefile.makepatch	2011-01-28 20:16:56.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/Makefile	2011-05-11 16:57:41.164881138 -0400
+@@ -9,4 +9,4 @@ precompile:
+ 
+ TARGET = exe
+ ASSEMBLY = $(TOOL_TESTS)
+-REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(OUTDIR)/$(CECIL) -r:$(OUTDIR)/$(FLOWANALYSIS) -r:$(OUTDIR)/$(TOOL) -r:$(OUTDIR)/$(UNIT) -r:$(OUTDIR)/$(UNIT_EXT)
++REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(CECIL) -r:$(FLOWANALYSIS) -r:$(OUTDIR)/$(TOOL) -r:$(OUTDIR)/$(UNIT) -r:$(OUTDIR)/$(UNIT_EXT)
+diff -up db4o-8.0/src/Makefile.makepatch db4o-8.0/src/Makefile
+--- db4o-8.0/src/Makefile.makepatch	2011-01-28 20:16:42.000000000 -0500
++++ db4o-8.0/src/Makefile	2011-05-11 16:58:59.088899223 -0400
+@@ -12,17 +12,17 @@ TOOL = Db4oTool/Db4oTool
+ TOOL_TESTS = Db4oTool/Db4oTool.Tests
+ LINQ = Db4objects.Db4o.Linq
+ LINQ_TESTS = Db4objects.Db4o.Linq.Tests
+-LINQ_INSTR_TESTS = Db4objects.Db4o.Linq.Instrumentation.Tests
+-
++LINQ_INSTR_TESTS = Db4objects.Db4o.Linq.Instrumentation.Tests
++
+ LIBS = Libs/net-2.0
+ 
+ OUTDIR = ./bin
+ 
+ all: prebuild build postbuild
+ 
+-prebuild:
+-	[ -d $(OUTDIR) ] || mkdir $(OUTDIR)
+-	cp $(LIBS)/*.dll $(OUTDIR)
++prebuild:
++	[ -d $(OUTDIR) ] || mkdir $(OUTDIR)
++#	cp $(LIBS)/*.dll $(OUTDIR)
+ 
+ build: core cs optional nq linq tool tests
+ 
diff --git a/db4o-8.0-mono-reflection.patch b/db4o-8.0-mono-reflection.patch
new file mode 100644
index 0000000..42054ca
--- /dev/null
+++ b/db4o-8.0-mono-reflection.patch
@@ -0,0 +1,20 @@
+diff -up db4o-8.0/src/Db4objects.Db4o.Linq/Makefile.mono-reflection db4o-8.0/src/Db4objects.Db4o.Linq/Makefile
+--- db4o-8.0/src/Db4objects.Db4o.Linq/Makefile.mono-reflection	2011-05-12 16:34:00.704256102 -0400
++++ db4o-8.0/src/Db4objects.Db4o.Linq/Makefile	2011-05-12 16:34:00.712256003 -0400
+@@ -5,4 +5,4 @@ OUTDIR = ../bin
+ 
+ TARGET = library
+ ASSEMBLY = Db4objects.Db4o.Linq.dll
+-REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(CECIL) -r:$(FLOWANALYSIS)
++REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(CECIL) -r:$(FLOWANALYSIS) -r:$(MONOREFLECTION)
+diff -up db4o-8.0/src/include.mk.mono-reflection db4o-8.0/src/include.mk
+--- db4o-8.0/src/include.mk.mono-reflection	2011-01-28 20:16:52.000000000 -0500
++++ db4o-8.0/src/include.mk	2011-05-12 16:34:30.823890392 -0400
+@@ -24,6 +24,7 @@ LINQ_INSTR_TESTS = Db4objects.Db4o.Linq.
+ CECIL = Mono.Cecil.dll
+ FLOWANALYSIS = Cecil.FlowAnalysis.dll
+ GETOPTIONS = Mono.GetOptions.dll
++MONOREFLECTION = Mono.Reflection.dll
+ 
+ build: precompile compile postcompile
+ 
diff --git a/db4o-8.0-more-makefile-fixes.patch b/db4o-8.0-more-makefile-fixes.patch
new file mode 100644
index 0000000..6b01363
--- /dev/null
+++ b/db4o-8.0-more-makefile-fixes.patch
@@ -0,0 +1,17 @@
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/Makefile.makefix db4o-8.0/src/Db4oTool/Db4oTool.Tests/Makefile
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/Makefile.makefix	2011-05-13 13:52:13.190587068 -0400
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/Makefile	2011-05-13 13:53:27.527606318 -0400
+@@ -3,10 +3,12 @@ include ../../include.mk
+ 
+ OUTDIR = ../../bin
+ 
++KEY_FILE = ../../db4objects.snk
++
+ precompile:
+ 	[ -d $(OUTDIR) ] || mkdir $(OUTDIR)
+ 	find $(WORKDIR) -name "*.cs" | egrep -v 'Resources'> $(RESPONSE_FILE)
+ 
+ TARGET = exe
+ ASSEMBLY = $(TOOL_TESTS)
+-REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(CECIL) -r:$(FLOWANALYSIS) -r:$(OUTDIR)/$(TOOL) -r:$(OUTDIR)/$(UNIT) -r:$(OUTDIR)/$(UNIT_EXT)
++REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(CECIL) -r:$(FLOWANALYSIS) -r:$(OUTDIR)/$(TOOL) -r:$(OUTDIR)/$(UNIT) -r:$(OUTDIR)/$(UNIT_EXT) -r:$(OUTDIR)/$(OPTIONAL)
diff --git a/db4o-8.0-noGetOptions.patch b/db4o-8.0-noGetOptions.patch
new file mode 100644
index 0000000..87a35bc
--- /dev/null
+++ b/db4o-8.0-noGetOptions.patch
@@ -0,0 +1,815 @@
+diff -up db4o-8.0/src/Db4objects.Db4o.Linq.Instrumentation.Tests/Program.cs.noGetOptions db4o-8.0/src/Db4objects.Db4o.Linq.Instrumentation.Tests/Program.cs
+--- db4o-8.0/src/Db4objects.Db4o.Linq.Instrumentation.Tests/Program.cs.noGetOptions	2011-01-28 22:15:20.000000000 -0500
++++ db4o-8.0/src/Db4objects.Db4o.Linq.Instrumentation.Tests/Program.cs	2011-05-13 14:24:13.672625837 -0400
+@@ -1,81 +0,0 @@
+-/* This file is part of the db4o object database http://www.db4o.com
+-
+-Copyright (C) 2004 - 2010  Versant Corporation http://www.versant.com
+-
+-db4o is free software; you can redistribute it and/or modify it under
+-the terms of version 3 of the GNU General Public License as published
+-by the Free Software Foundation.
+-
+-db4o 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/. */
+-using System;
+-using System.IO;
+-using System.Reflection;
+-
+-using Db4oTool;
+-using Db4oTool.Core;
+-using Db4oTool.Tests.Core;
+-
+-namespace Db4objects.Db4o.Linq.Instrumentation.Tests
+-{
+-	// TODO: integrate into the build
+-	class Program
+-	{
+-		const string TestAssemblyFileName = "Db4objects.Db4o.Linq.Tests.exe";
+-
+-		static void Main(string[] args)
+-		{
+-			var path = ExecutingAssemblyPath();
+-			CopyToTemp(Path.Combine(path, TestAssemblyFileName));
+-			CopyAllToTemp(Directory.GetFiles(path, "*.dll"));
+-
+-			var testAssemblyFile = Path.Combine(GetTempPath(), TestAssemblyFileName);
+-			InstrumentAssembly(testAssemblyFile);
+-
+-			var domain = AppDomain.CreateDomain("LinqTests", null, new AppDomainSetup { ApplicationBase = GetTempPath() });
+-			domain.ExecuteAssembly(testAssemblyFile);
+-		}
+-
+-		private static string GetTempPath()
+-		{
+-			return ShellUtilities.GetTempPath();
+-		}
+-
+-		private static void InstrumentAssembly(string testAssemblyFile)
+-		{
+-			var options = new ProgramOptions()
+-			{
+-				Target = testAssemblyFile,
+-				TransparentPersistence = true,
+-			};
+-
+-			const string attribute_type = "Db4objects.Db4o.Linq.Tests.CodeAnalysis.DoNotInstrumentAttribute";
+-
+-			options.Filters.Add(delegate { return new NotFilter(new ByAttributeFilter(attribute_type)); });
+-			Db4oTool.Program.Run(options);
+-		}
+-
+-		private static void CopyAllToTemp(string[] files)
+-		{
+-			foreach (var fname in files)
+-			{
+-				CopyToTemp(fname);
+-			}
+-		}
+-
+-		private static void CopyToTemp(string fname)
+-		{
+-			ShellUtilities.CopyToTemp(fname);
+-		}
+-
+-		private static string ExecutingAssemblyPath()
+-		{
+-			return Path.GetDirectoryName(Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName);
+-		}
+-	}
+-}
+diff -up db4o-8.0/src/Db4oTool/Db4oTool/Makefile.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool/Makefile
+--- db4o-8.0/src/Db4oTool/Db4oTool/Makefile.noGetOptions	2011-05-13 14:24:13.654626067 -0400
++++ db4o-8.0/src/Db4oTool/Db4oTool/Makefile	2011-05-13 14:24:13.673625824 -0400
+@@ -3,6 +3,8 @@ include ../../include.mk
+ 
+ OUTDIR = ../../bin
+ 
++KEY_FILE = ../../db4objects.snk
++
+ TARGET = exe
+ ASSEMBLY = $(TOOL)
+-REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(OPTIONAL) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(CECIL) -r:$(FLOWANALYSIS) -r:$(GETOPTIONS)
++REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(OPTIONAL) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(CECIL) -r:$(FLOWANALYSIS)
+diff -up db4o-8.0/src/Db4oTool/Db4oTool/Program.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool/Program.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool/Program.cs.noGetOptions	2011-05-13 14:24:13.666625915 -0400
++++ db4o-8.0/src/Db4oTool/Db4oTool/Program.cs	2011-05-13 14:24:13.673625824 -0400
+@@ -31,85 +31,77 @@ namespace Db4oTool
+ 		{
+ 			Trace.Listeners.Add(new TextWriterTraceListener(Console.Error));
+ 
+-			ProgramOptions options = new ProgramOptions();
+-			try
+-			{	
+-				options.ProcessArgs(args);
+-				if (!options.IsValid)
+-				{
+-					options.DoHelp();
+-					return -1;
+-				}
+-
+-				Run(options);
+-			}
+-			catch (Exception x)
+-			{
+-				ReportError(options, x);
+-				return -2;
+-			}
++			Run(args);
+ 			return 0;
+ 		}
+ 
+-		public static void Run(ProgramOptions options)
++		public static void Run(string[] args)
+ 		{
+-            foreach (string fileName in options.StatisticsFileNames)
+-            {
+-                new Statistics().Run(fileName);
+-            }
++			ProgramOptions.ProcessArgs(args);
++			foreach (string fileName in ProgramOptions.StatisticsFileNames)
++			{
++				new Statistics().Run(fileName);
++			}
+ 
+-			if (options.InstallPerformanceCounters)
++			if (ProgramOptions.InstallPerformanceCounters)
+ 			{
+ 				Db4oPerformanceCounters.ReInstall();
+ 			}
+ 
+-            if (options.CheckDatabase)
+-            {
+-                Console.Write("\r\nChecking '{0}' : ", options.Target);
+-                ConsistencyChecker.Main(new string[] { options.Target});
+-            }
+-
+-            if (options.ShowFileUsageStats)
+-            {
+-                FileUsageStatsCollector.Main(new string[] { options.Target, "true" });
+-            }
+-
+-            if (NoInstrumentationStep(options))
+-            {
+-                return;
+-            }
++			if (ProgramOptions.CheckDatabase)
++			{
++				Console.Write("\r\nChecking '{0}' : ", ProgramOptions.Target);
++				ConsistencyChecker.Main(new string[] { ProgramOptions.Target});
++			}
++
++			if (ProgramOptions.ShowFileUsageStats)
++			{
++				FileUsageStatsCollector.Main(new string[] { ProgramOptions.Target, "true" });
++			}
++
++			if (!ProgramOptions.NQ && !ProgramOptions.TransparentPersistence && ProgramOptions.CustomInstrumentations.Count == 0)
++			{
++				return;
++			}
+ 
+ 			using (new CurrentDirectoryAssemblyResolver())
+ 			{
+-				RunPipeline(options);
++				RunPipeline();
+ 			}
+ 		}
+ 
+-	    private static bool NoInstrumentationStep(ProgramOptions options)
+-	    {
+-	        return !options.NQ && !options.TransparentPersistence && options.CustomInstrumentations.Count == 0;
+-	    }
+-
+-	    private static void RunPipeline(ProgramOptions options)
++		private static void RunPipeline()
+ 		{
+-			InstrumentationPipeline pipeline = new InstrumentationPipeline(GetConfiguration(options));
+-			if (options.NQ)
++			Configuration configuration = new Configuration(ProgramOptions.Target);
++                        configuration.CaseSensitive = ProgramOptions.CaseSensitive;
++                        configuration.PreserveDebugInfo = ProgramOptions.Debug;
++                        if (ProgramOptions.Verbose)
++                        {
++                                configuration.TraceSwitch.Level = ProgramOptions.PrettyVerbose ? TraceLevel.Verbose : TraceLevel.Info;
++                        }
++                        foreach (TypeFilterFactory factory in ProgramOptions.Filters)
++                        {
++                                configuration.AddFilter(factory());
++                        }
++
++			InstrumentationPipeline pipeline = new InstrumentationPipeline(configuration);
++			if (ProgramOptions.NQ)
+ 			{
+ 				pipeline.Add(new DelegateOptimizer());
+ 				pipeline.Add(new PredicateOptimizer());
+ 			}
+ 			
+-            if (options.TransparentPersistence)
++			if (ProgramOptions.TransparentPersistence)
+ 			{
+-				pipeline.Add(new TAInstrumentation(options.Collections));
++				pipeline.Add(new TAInstrumentation(ProgramOptions.Collections));
+ 			}
+ 			
+-            foreach (IAssemblyInstrumentation instr in Factory.Instantiate<IAssemblyInstrumentation>(options.CustomInstrumentations))
++			foreach (IAssemblyInstrumentation instr in Factory.Instantiate<IAssemblyInstrumentation>(ProgramOptions.CustomInstrumentations))
+ 			{
+ 				pipeline.Add(instr);
+ 			}
+ 
+-			if (!options.Fake)
++			if (!ProgramOptions.Fake)
+ 			{
+ 				pipeline.Add(new SaveAssemblyInstrumentation());
+ 				if (pipeline.Context.IsAssemblySigned())
+@@ -119,33 +111,5 @@ namespace Db4oTool
+ 			}
+ 			pipeline.Run();
+ 		}
+-
+-		private static void ReportError(ProgramOptions options, Exception x)
+-		{
+-			if (options.Verbose)
+-			{
+-				Console.WriteLine(x);
+-			}
+-			else
+-			{
+-				Console.WriteLine(x.Message);
+-			}
+-		}
+-
+-		private static Configuration GetConfiguration(ProgramOptions options)
+-		{
+-			Configuration configuration = new Configuration(options.Target);
+-			configuration.CaseSensitive = options.CaseSensitive;
+-			configuration.PreserveDebugInfo = options.Debug;
+-			if (options.Verbose)
+-			{
+-				configuration.TraceSwitch.Level = options.PrettyVerbose ? TraceLevel.Verbose : TraceLevel.Info;
+-			}
+-            foreach (TypeFilterFactory factory in options.Filters)
+-            {
+-                configuration.AddFilter(factory());
+-            }
+-			return configuration;
+-		}
+ 	}
+-}
+\ No newline at end of file
++}
+diff -up db4o-8.0/src/Db4oTool/Db4oTool/ProgramOptions.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool/ProgramOptions.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool/ProgramOptions.cs.noGetOptions	2011-05-13 14:24:13.667625902 -0400
++++ db4o-8.0/src/Db4oTool/Db4oTool/ProgramOptions.cs	2011-05-13 14:24:13.674625811 -0400
+@@ -16,149 +16,98 @@ with this program.  If not, see http://w
+ using System;
+ using System.Collections.Generic;
+ using Db4oTool.Core;
+-using Mono.GetOptions;
++using Mono.Options;
+ 
+ namespace Db4oTool
+ {
+ 	public delegate ITypeFilter TypeFilterFactory();
+ 
+-	public class ProgramOptions : Options
++	public class ProgramOptions
+ 	{
+-		private bool _prettyVerbose;
+-
+-		[Option("Preserve debugging information", "debug")]
+-		public bool Debug;
+-
+-		[Option("Implement Transparent Persistence Support", "tp")]
+-		public bool TransparentPersistence;
+-		
+-		[Option("Instrument native collections for transparent activation/persistence", "collections")]
+-		public bool Collections;
+-
+-		[Option("Case sensitive queries", "case-sensitive")]
+-		public bool CaseSensitive;
+-        
+-        [Option("Verbose operation mode", 'v', "verbose")]
+-		public bool Verbose;
+-
+-		[Option("Optimize all native queries", "nq")]
+-		public bool NQ;
+-
+-		[Option("Pretty verbose operation mode", "vv")]
+-		public bool PrettyVerbose
+-		{
++		private static bool _prettyVerbose;
++		public static bool Debug { get; private set; }
++		public static bool TransparentPersistence { get; private set; }
++		public static bool Collections { get; private set; }
++		public static bool CaseSensitive { get; private set; }
++		public static bool Verbose { get; private set; }
++		public static bool NQ { get; private set; }
++		public static bool PrettyVerbose {
+ 			get { return _prettyVerbose; }
+-
+ 			set { Verbose = _prettyVerbose = value; }
+ 		}
+-
+-		[Option("Fake operation mode, assembly won't be written", "fake")]
+-		public bool Fake;
+-
+-        public List<string> StatisticsFileNames = new List<string>();
+-
+-        [Option("Print statistics for database file PARAM", "statistics")]
+-        public WhatToDoNext StatisticsFileName(string fileName)
+-        {
+-            StatisticsFileNames.Add(fileName);
+-            return WhatToDoNext.GoAhead;
+-        }
+-
+-	    [Option("Run consistency checks on target database.", "check")] 
+-        public bool CheckDatabase;
+-
+-        [Option("Displays file usage statistics for target database.", "fileusage")]
+-        public bool ShowFileUsageStats;
+-
+-		[Option("Installs the db4o performance counter category", "install-performance-counters")]
+-		public bool InstallPerformanceCounters;
+-
+-		public List<string> CustomInstrumentations = new List<string>();
+-
+-		[Option("Custom instrumentation type", "instrumentation", MaxOccurs = -1)]
+-		public WhatToDoNext CustomInstrumentation(string instrumentation)
+-		{
+-			CustomInstrumentations.Add(instrumentation);
+-			return WhatToDoNext.GoAhead;
+-		}
+-
+-		public readonly List<TypeFilterFactory> Filters = new List<TypeFilterFactory>();
+-
+-	    [Option("Filter types to be instrumented by attribute", "by-attribute", MaxOccurs = -1)]
+-		public WhatToDoNext ByAttribute(string attribute)
+-		{
+-			Filters.Add(delegate { return new ByAttributeFilter(attribute); });
+-			return WhatToDoNext.GoAhead;
+-		}
+-
+-		[Option("Custom type filter", "by-filter", MaxOccurs = -1)]
+-		public WhatToDoNext ByFilter(string filterType)
+-		{
+-			Filters.Add(delegate { return Factory.Instantiate<ITypeFilter>(filterType); });
+-			return WhatToDoNext.GoAhead;
+-		}
+-
+-		[Option("Filter types by name (with regular expression syntax)", "by-name", MaxOccurs = -1)]
+-		public WhatToDoNext ByName(string name)
+-		{
+-			Filters.Add(delegate { return new ByNameFilter(name); });
+-			return WhatToDoNext.GoAhead;
+-		}
+-
+-		[Option("Negates the last filter.", "not", MaxOccurs = -1)]
+-		public WhatToDoNext Not()
+-		{
+-			if (Filters.Count == 0) throw new InvalidOperationException("'not' must be specified after a filter");
+-
+-			int lastIndex = Filters.Count - 1;
+-			TypeFilterFactory lastFilter = Filters[lastIndex];
+-			Filters[lastIndex] = delegate { return new NotFilter(lastFilter()); };
+-			return WhatToDoNext.GoAhead;
+-		}
+-
+-		[Option("Same as 'tp'", "ta")]
+-		public WhatToDoNext TA()
+-		{
+-			TransparentPersistence = true;
+-			return WhatToDoNext.GoAhead;
+-		}
+-
+-		public string Target
+-		{
+-			get
+-			{
+-				if (RemainingArguments == null) return null;
+-				if (RemainingArguments.Length != 1) return null;
+-				return RemainingArguments[0];
++		public static bool Fake { get; private set; }
++		public static bool CheckDatabase { get; private set; }
++		public static bool ShowFileUsageStats { get; private set; }
++		public static bool InstallPerformanceCounters { get; private set; }
++		public static bool HelpShown { get; private set; }
++		public static string Target { get; private set; }
++		public static bool IsValid { get; private set; }
++		static bool databaseTarget;
++		static bool enhancementTarget;
++
++		public static List<string> StatisticsFileNames = new List<string>();
++		public static List<string> CustomInstrumentations = new List<string>();
++		public static readonly List<TypeFilterFactory> Filters = new List<TypeFilterFactory>();
++
++		static OptionSet Options { get; set; }
++
++		static ProgramOptions ()
++		{
++			Options = new OptionSet () {
++				{ "target=", "Target database [required]", (string val) => Target = val },
++				{ "debug", "Preserve debugging information", val => Debug = true },
++				{ "tp|ta", "Implement Transparent Persistence Support", val => TransparentPersistence = true },
++				{ "collections", "Instrument native collections for transparent activation/persistence", val => Collections = true },
++				{ "case-sensitive", "Case sensitive queries", val => CaseSensitive = true },
++				{ "v|verbose", "Verbose operation mode", val => Verbose = true },
++				{ "vv", "Pretty verbose operation mode", val => _prettyVerbose = true },
++				{ "nq", "Optimize all native queries", val => NQ = true },
++				{ "fake", "Fake operation mode, assembly won't be written", val => Fake = true },
++				{ "check", "Run consistency checks on target database", val => CheckDatabase = true },
++				{ "fileusage", "Displays file usage statistics for target database", val => ShowFileUsageStats = true },
++				{ "install-performance-counters", "Installs the db4o performance counter category", val => InstallPerformanceCounters = true },
++				{ "statistics=", "Print statistics for database file PARAM", val => StatisticsFileNames.Add(val) },
++				{ "instrumentation=", "Custom instrumentation type", val => CustomInstrumentations.Add(val) },
++				{ "by-attribute=", "Filter types to be instrumented by attribute", val => Filters.Add(delegate { return new ByAttributeFilter(val); }) },
++				{ "by-filter=", "Custom type filter", val => Filters.Add(delegate { return Factory.Instantiate<ITypeFilter>(val); }) },
++				{ "by-name=", "Filter types by name (with regular expression syntax)", val => Filters.Add(delegate { return new ByNameFilter(val); }) },
++				{ "not", "Negates the last filter", val => {
++					if (Filters.Count == 0) throw new InvalidOperationException("'not' must be specified after a filter");
++					int lastIndex = Filters.Count - 1;
++					TypeFilterFactory lastFilter = Filters[lastIndex];
++					Filters[lastIndex] = delegate { return new NotFilter(lastFilter()); };
++					}
++				},
++				{ "h|?|help", "Show this help list", help => DoHelp () },
++			};
++		}
++
++		public static void ProcessArgs (string[] args)
++		{
++			try {
++				Options.Parse (args);
++			} catch (OptionException ex) {
++				DoHelp ();
+ 			}
+-
+-			set
+-			{
+-				RemainingArguments = new string[] { value };
+-			}
+-		}
+-
+-		public bool IsValid
+-		{
+-			get
+-			{
+-			    bool databaseTarget = CheckDatabase || ShowFileUsageStats;
+-			    bool enhancementTarget = NQ || TransparentPersistence || CustomInstrumentations.Count > 0;
+-
+-                if (databaseTarget && enhancementTarget)
+-                {
+-                    return false;
+-                }
+-
+-				return StatisticsFileNames.Count > 0 || InstallPerformanceCounters ||
+-                    (Target != null
+-					   && (databaseTarget || enhancementTarget));
++			if (Target == null) {
++				IsValid = false;
++			} else {
++				databaseTarget = CheckDatabase || ShowFileUsageStats;
++				enhancementTarget = NQ || TransparentPersistence || CustomInstrumentations.Count > 0;
++				if (databaseTarget && enhancementTarget) {
++					IsValid = false;
++				} else {
++					IsValid = StatisticsFileNames.Count > 0 || InstallPerformanceCounters || (Target != null && (databaseTarget || enhancementTarget));
++				}
+ 			}
+ 		}
+ 
+-		public ProgramOptions()
++		public static void DoHelp ()
+ 		{
+-			DontSplitOnCommas = true;
++			Console.WriteLine ("usage: db4otool [options]");
++			Console.WriteLine ();
++			Options.WriteOptionDescriptions (Console.Out);
++			HelpShown = true;
+ 		}
+ 	}
+-}
+\ No newline at end of file
++}
+diff -up db4o-8.0/src/Db4oTool/Db4oTool/Properties/AssemblyInfo.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool/Properties/AssemblyInfo.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool/Properties/AssemblyInfo.cs.noGetOptions	2011-05-13 14:24:13.669625876 -0400
++++ db4o-8.0/src/Db4oTool/Db4oTool/Properties/AssemblyInfo.cs	2011-05-13 14:24:13.674625811 -0400
+@@ -30,14 +30,6 @@ using System.Security;
+ 
+ [assembly: AssemblyVersion("8.0.184.15484")]
+ 
+-[assembly: Mono.Author("Jean Baptiste Evain")]
+-[assembly: Mono.Author("Rodrigo B. de Oliveira")]
+-[assembly: Mono.Author("Klaus Wuestefeld")]
+-[assembly: Mono.Author("Patrick Roemer")]
+-
+-[assembly: Mono.About("")]
+-[assembly: Mono.UsageComplement("<target>")]
+-
+ [assembly: AllowPartiallyTrustedCallers]
+ 
+ #if NET_4_0
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/AllTests.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool.Tests/AllTests.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/AllTests.cs.noGetOptions	2011-01-28 22:15:10.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/AllTests.cs	2011-05-13 14:24:13.675625798 -0400
+@@ -24,7 +24,6 @@ namespace Db4oTool.Tests
+ 		{
+ 			return new Type[]
+ 				{
+-					typeof(ProgramOptionsTestCase),
+ 					typeof(Core.AllTests),
+ 					typeof(NQ.AllTests),
+ 					typeof(TA.AllTests),
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/AllTests.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/AllTests.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/AllTests.cs.noGetOptions	2011-01-28 22:15:10.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/AllTests.cs	2011-05-13 14:24:13.675625798 -0400
+@@ -31,10 +31,8 @@ namespace Db4oTool.Tests.Core
+ 					typeof(ContextVariableTestCase),
+ 					typeof(DebugInformationTestSuite),
+ 					typeof(ILPatternTestCase),
+-					typeof(InstallPerformanceCountersTestCase),
+ 					typeof(CustomInstrumentationTestCase),
+ 					typeof(PreserveDebugInfoTestCase),
+-					typeof(InstrumentingCFAssemblyTestCase),
+ 					typeof(StackAnalyzerTestCase),
+ 				};
+ 		}
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstallPerformanceCountersTestCase.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstallPerformanceCountersTestCase.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstallPerformanceCountersTestCase.cs.noGetOptions	2011-01-28 22:15:14.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstallPerformanceCountersTestCase.cs	2011-05-13 14:24:13.675625798 -0400
+@@ -1,65 +0,0 @@
+-/* This file is part of the db4o object database http://www.db4o.com
+-
+-Copyright (C) 2004 - 2010  Versant Corporation http://www.versant.com
+-
+-db4o is free software; you can redistribute it and/or modify it under
+-the terms of version 3 of the GNU General Public License as published
+-by the Free Software Foundation.
+-
+-db4o 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/. */
+-using System;
+-using System.Diagnostics;
+-using System.Security.Principal;
+-using System.Threading;
+-using Db4objects.Db4o.Monitoring;
+-using Db4oUnit;
+-
+-namespace Db4oTool.Tests.Core
+-{
+-	class InstallPerformanceCountersTestCase : ITestCase
+-	{
+-		public void Test()
+-		{
+-			if (!IsCurrentUserAnAdministrator() && IsLenientPerformanceCounterInstallTest())
+-			{
+-				Console.Error.WriteLine("WARNING: {0} requires administrator access rights to run.", GetType());
+-				return;
+-			}
+-
+-			if (Db4oCategoryExists())
+-			{
+-				PerformanceCounterCategory.Delete(Db4oPerformanceCounters.CategoryName);
+-			}
+-
+-			ProgramOptions options = new ProgramOptions();
+-			options.InstallPerformanceCounters = true;
+-
+-			Db4oTool.Program.Run(options);
+-
+-			Assert.IsTrue(Db4oCategoryExists());
+-		}
+-
+-		private static bool IsLenientPerformanceCounterInstallTest()
+-		{
+-			return !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("LENIENT_PERFCOUNTER_INSTALL_TEST"));
+-		}
+-
+-		private static bool Db4oCategoryExists()
+-		{
+-			return PerformanceCounterCategory.Exists(Db4oPerformanceCounters.CategoryName);
+-		}
+-
+-		private static bool IsCurrentUserAnAdministrator()
+-		{
+-			AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
+-			WindowsPrincipal principal = (WindowsPrincipal)Thread.CurrentPrincipal;
+-			return principal.IsInRole(WindowsBuiltInRole.Administrator);
+-		}
+-	}
+-}
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstrumentingCFAssemblyTestCase.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstrumentingCFAssemblyTestCase.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstrumentingCFAssemblyTestCase.cs.noGetOptions	2011-01-28 22:15:14.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstrumentingCFAssemblyTestCase.cs	2011-05-13 14:24:13.676625786 -0400
+@@ -1,124 +0,0 @@
+-/* This file is part of the db4o object database http://www.db4o.com
+-
+-Copyright (C) 2004 - 2010  Versant Corporation http://www.versant.com
+-
+-db4o is free software; you can redistribute it and/or modify it under
+-the terms of version 3 of the GNU General Public License as published
+-by the Free Software Foundation.
+-
+-db4o 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/. */
+-using System;
+-using System.Collections.Generic;
+-using System.IO;
+-using System.Reflection;
+-using Db4objects.Db4o.TA;
+-using Db4oTool.Core;
+-using Db4oUnit;
+-using Mono.Cecil;
+-
+-namespace Db4oTool.Tests.Core
+-{
+-	public class InstrumentingCFAssemblyTestCase : ITestCase
+-	{
+-		private const string CF20_VERSION = "2.0.0.0";
+-		private const string CF35_VERSION = "3.5.0.0";
+-
+-		public void TestCF20Instrumentation()
+-		{
+-			AssertCFInstrumentation(CF20_VERSION);
+-		}
+-
+-		public void TestCF35Instrumentation()
+-		{
+-			AssertCFInstrumentation(CF35_VERSION);
+-		}
+-
+-		private void AssertCFInstrumentation(string version)
+-		{
+-			string assemblyPath = CompileAndInstrumentCFAssembly(version);
+-			AssertInstrumentedCFAssembly(assemblyPath);
+-		}
+-
+-		private static void AssertInstrumentedCFAssembly(string assemblyPath)
+-		{
+-			AppDomain appDomain = AppDomain.CreateDomain("CF_InstrumentationTest");
+-
+-			try
+-			{
+-				appDomain.DoCallBack(new InstrumentationAsserter(assemblyPath).Run);
+-			}
+-			finally
+-			{
+-				AppDomain.Unload(appDomain);
+-			}
+-			
+-		}
+-
+-		private string CompileAndInstrumentCFAssembly(string version)
+-		{
+-			string assemblyPath = String.Empty;
+-			CompilationServices.ExtraParameters.Using(
+-				"/nostdlib+",
+-
+-				delegate
+-					{
+-						assemblyPath =
+-							CompilationServices.EmitAssemblyFromResource(
+-								ResourceServices.CompleteResourceName(GetType(), "CFInstrumentationSubject"),
+-								ReferencesFor(version));
+-
+-						Db4oTool.Program.Run(ProgramOptionsFor(assemblyPath));
+-					});
+-
+-			return assemblyPath;
+-		}
+-
+-		private static IEnumerable<string> CFVersions()
+-		{
+-			yield return CF20_VERSION;
+-			yield return CF35_VERSION;
+-		}
+-
+-		private static ProgramOptions ProgramOptionsFor(string assemblyPath)
+-		{
+-			ProgramOptions po = new ProgramOptions();
+-			po.ProcessArgs(new string[] {"-ta", assemblyPath,});
+-
+-			return po;
+-		}
+-
+-		private Assembly[] ReferencesFor(string version)
+-		{
+-			string cfAssembliesFolder = CompactFrameworkServices.FolderFor(version);
+-			
+-			return new Assembly[]
+-			       	{
+-						Assembly.LoadFile(Path.Combine(cfAssembliesFolder, "mscorlib.dll")),
+-						Assembly.LoadFile(Path.Combine(cfAssembliesFolder, "System.dll")),
+-					};
+-		}
+-	}
+-
+-	[Serializable]
+-	internal class InstrumentationAsserter
+-	{
+-		private readonly string _assemblyPath;
+-
+-		public InstrumentationAsserter(string assemblyPath)
+-		{
+-			_assemblyPath = assemblyPath;
+-		}
+-
+-		public void Run()
+-		{
+-			Assembly assembly = Assembly.LoadFrom(_assemblyPath);
+-			Assert.IsTrue(typeof(IActivatable).IsAssignableFrom(assembly.GetType("Db4oTool.Tests.Core.Resources.CFInstrumentationSubject")));
+-		}
+-	}
+-}
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/ProgramOptionsTestCase.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool.Tests/ProgramOptionsTestCase.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/ProgramOptionsTestCase.cs.noGetOptions	2011-01-28 22:15:14.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/ProgramOptionsTestCase.cs	2011-05-13 14:24:13.676625786 -0400
+@@ -1,60 +0,0 @@
+-/* This file is part of the db4o object database http://www.db4o.com
+-
+-Copyright (C) 2004 - 2010  Versant Corporation http://www.versant.com
+-
+-db4o is free software; you can redistribute it and/or modify it under
+-the terms of version 3 of the GNU General Public License as published
+-by the Free Software Foundation.
+-
+-db4o 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/. */
+-using Db4oUnit;
+-
+-namespace Db4oTool.Tests
+-{
+-	class ProgramOptionsTestCase : ITestCase
+-	{	
+-		public void TestTpSameAsTA()
+-		{
+-			AssertTransparentPersistence("-tp");
+-			AssertTransparentPersistence("-ta");
+-		}
+-
+-		public void TestInstallPerformanceCounters()
+-		{
+-			ProgramOptions options = new ProgramOptions();
+-			Assert.IsFalse(options.InstallPerformanceCounters);
+-			options.ProcessArgs(new string[] { "--install-performance-counters"});
+-			Assert.IsTrue(options.InstallPerformanceCounters);
+-		}
+-
+-        public void TestInvalidOptionsCombination()
+-        {
+-            AssertInvalidOptionsCombination("-nq -fileusage mytarget");
+-            AssertInvalidOptionsCombination("-nq -check mytarget");
+-            AssertInvalidOptionsCombination("-ta -fileusage mytarget");
+-            AssertInvalidOptionsCombination("-ta -check mytarget");
+-            AssertInvalidOptionsCombination("-tp -fileusage mytarget");
+-        }
+-
+-	    private void AssertInvalidOptionsCombination(string arguments)
+-	    {
+-            ProgramOptions options = new ProgramOptions();
+-            options.ProcessArgs(arguments.Split(' '));
+-	        Assert.IsFalse(options.IsValid);
+-	    }
+-
+-	    private static void AssertTransparentPersistence(string arg)
+-		{
+-			ProgramOptions options = new ProgramOptions();
+-			Assert.IsFalse(options.TransparentPersistence);
+-			options.ProcessArgs(new string[] { arg });
+-			Assert.IsTrue(options.TransparentPersistence);
+-		}
+-	}
+-}
+diff -up db4o-8.0/src/Makefile.noGetOptions db4o-8.0/src/Makefile
+--- db4o-8.0/src/Makefile.noGetOptions	2011-05-13 14:25:54.563345710 -0400
++++ db4o-8.0/src/Makefile	2011-05-13 14:26:16.330069335 -0400
+@@ -28,7 +28,7 @@ build: core cs optional nq linq tool tes
+ 
+ postbuild:
+ 
+-tests: unit_ext tool_tests linq_instr_tests
++tests: unit_ext tool_tests
+ 	cd $(TESTS) ; $(MAKE)
+ 
+ linq_tests:
diff --git a/db4o-8.0-noGetOptions2.patch b/db4o-8.0-noGetOptions2.patch
new file mode 100644
index 0000000..9cb6644
--- /dev/null
+++ b/db4o-8.0-noGetOptions2.patch
@@ -0,0 +1,823 @@
+diff -up db4o-8.0/src/Db4objects.Db4o.Linq.Instrumentation.Tests/Program.cs.noGetOptions db4o-8.0/src/Db4objects.Db4o.Linq.Instrumentation.Tests/Program.cs
+--- db4o-8.0/src/Db4objects.Db4o.Linq.Instrumentation.Tests/Program.cs.noGetOptions	2011-01-28 22:15:20.000000000 -0500
++++ db4o-8.0/src/Db4objects.Db4o.Linq.Instrumentation.Tests/Program.cs	2011-05-16 11:29:38.548673452 -0400
+@@ -1,81 +0,0 @@
+-/* This file is part of the db4o object database http://www.db4o.com
+-
+-Copyright (C) 2004 - 2010  Versant Corporation http://www.versant.com
+-
+-db4o is free software; you can redistribute it and/or modify it under
+-the terms of version 3 of the GNU General Public License as published
+-by the Free Software Foundation.
+-
+-db4o 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/. */
+-using System;
+-using System.IO;
+-using System.Reflection;
+-
+-using Db4oTool;
+-using Db4oTool.Core;
+-using Db4oTool.Tests.Core;
+-
+-namespace Db4objects.Db4o.Linq.Instrumentation.Tests
+-{
+-	// TODO: integrate into the build
+-	class Program
+-	{
+-		const string TestAssemblyFileName = "Db4objects.Db4o.Linq.Tests.exe";
+-
+-		static void Main(string[] args)
+-		{
+-			var path = ExecutingAssemblyPath();
+-			CopyToTemp(Path.Combine(path, TestAssemblyFileName));
+-			CopyAllToTemp(Directory.GetFiles(path, "*.dll"));
+-
+-			var testAssemblyFile = Path.Combine(GetTempPath(), TestAssemblyFileName);
+-			InstrumentAssembly(testAssemblyFile);
+-
+-			var domain = AppDomain.CreateDomain("LinqTests", null, new AppDomainSetup { ApplicationBase = GetTempPath() });
+-			domain.ExecuteAssembly(testAssemblyFile);
+-		}
+-
+-		private static string GetTempPath()
+-		{
+-			return ShellUtilities.GetTempPath();
+-		}
+-
+-		private static void InstrumentAssembly(string testAssemblyFile)
+-		{
+-			var options = new ProgramOptions()
+-			{
+-				Target = testAssemblyFile,
+-				TransparentPersistence = true,
+-			};
+-
+-			const string attribute_type = "Db4objects.Db4o.Linq.Tests.CodeAnalysis.DoNotInstrumentAttribute";
+-
+-			options.Filters.Add(delegate { return new NotFilter(new ByAttributeFilter(attribute_type)); });
+-			Db4oTool.Program.Run(options);
+-		}
+-
+-		private static void CopyAllToTemp(string[] files)
+-		{
+-			foreach (var fname in files)
+-			{
+-				CopyToTemp(fname);
+-			}
+-		}
+-
+-		private static void CopyToTemp(string fname)
+-		{
+-			ShellUtilities.CopyToTemp(fname);
+-		}
+-
+-		private static string ExecutingAssemblyPath()
+-		{
+-			return Path.GetDirectoryName(Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName);
+-		}
+-	}
+-}
+diff -up db4o-8.0/src/Db4oTool/Db4oTool/Makefile.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool/Makefile
+--- db4o-8.0/src/Db4oTool/Db4oTool/Makefile.noGetOptions	2011-05-16 11:29:38.534673620 -0400
++++ db4o-8.0/src/Db4oTool/Db4oTool/Makefile	2011-05-16 11:29:38.549673440 -0400
+@@ -3,6 +3,8 @@ include ../../include.mk
+ 
+ OUTDIR = ../../bin
+ 
++KEY_FILE = ../../db4objects.snk
++
+ TARGET = exe
+ ASSEMBLY = $(TOOL)
+-REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(OPTIONAL) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(CECIL) -r:$(FLOWANALYSIS) -r:$(GETOPTIONS)
++REFERENCES = -r:$(OUTDIR)/$(CORE) -r:$(OUTDIR)/$(OPTIONAL) -r:$(OUTDIR)/$(INSTR) -r:$(OUTDIR)/$(NQ) -r:$(CECIL) -r:$(FLOWANALYSIS)
+diff -up db4o-8.0/src/Db4oTool/Db4oTool/Program.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool/Program.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool/Program.cs.noGetOptions	2011-05-16 11:29:38.542673524 -0400
++++ db4o-8.0/src/Db4oTool/Db4oTool/Program.cs	2011-05-16 11:29:38.549673440 -0400
+@@ -31,85 +31,77 @@ namespace Db4oTool
+ 		{
+ 			Trace.Listeners.Add(new TextWriterTraceListener(Console.Error));
+ 
+-			ProgramOptions options = new ProgramOptions();
+-			try
+-			{	
+-				options.ProcessArgs(args);
+-				if (!options.IsValid)
+-				{
+-					options.DoHelp();
+-					return -1;
+-				}
+-
+-				Run(options);
+-			}
+-			catch (Exception x)
+-			{
+-				ReportError(options, x);
+-				return -2;
+-			}
++			Run(args);
+ 			return 0;
+ 		}
+ 
+-		public static void Run(ProgramOptions options)
++		public static void Run(string[] args)
+ 		{
+-            foreach (string fileName in options.StatisticsFileNames)
+-            {
+-                new Statistics().Run(fileName);
+-            }
++			ProgramOptions.ProcessArgs(args);
++			foreach (string fileName in ProgramOptions.StatisticsFileNames)
++			{
++				new Statistics().Run(fileName);
++			}
+ 
+-			if (options.InstallPerformanceCounters)
++			if (ProgramOptions.InstallPerformanceCounters)
+ 			{
+ 				Db4oPerformanceCounters.ReInstall();
+ 			}
+ 
+-            if (options.CheckDatabase)
+-            {
+-                Console.Write("\r\nChecking '{0}' : ", options.Target);
+-                ConsistencyChecker.Main(new string[] { options.Target});
+-            }
+-
+-            if (options.ShowFileUsageStats)
+-            {
+-                FileUsageStatsCollector.Main(new string[] { options.Target, "true" });
+-            }
+-
+-            if (NoInstrumentationStep(options))
+-            {
+-                return;
+-            }
++			if (ProgramOptions.CheckDatabase)
++			{
++				Console.Write("\r\nChecking '{0}' : ", ProgramOptions.Target);
++				ConsistencyChecker.Main(new string[] { ProgramOptions.Target});
++			}
++
++			if (ProgramOptions.ShowFileUsageStats)
++			{
++				FileUsageStatsCollector.Main(new string[] { ProgramOptions.Target, "true" });
++			}
++
++			if (!ProgramOptions.NQ && !ProgramOptions.TransparentPersistence && ProgramOptions.CustomInstrumentations.Count == 0)
++			{
++				return;
++			}
+ 
+ 			using (new CurrentDirectoryAssemblyResolver())
+ 			{
+-				RunPipeline(options);
++				RunPipeline();
+ 			}
+ 		}
+ 
+-	    private static bool NoInstrumentationStep(ProgramOptions options)
+-	    {
+-	        return !options.NQ && !options.TransparentPersistence && options.CustomInstrumentations.Count == 0;
+-	    }
+-
+-	    private static void RunPipeline(ProgramOptions options)
++		private static void RunPipeline()
+ 		{
+-			InstrumentationPipeline pipeline = new InstrumentationPipeline(GetConfiguration(options));
+-			if (options.NQ)
++			Configuration configuration = new Configuration(ProgramOptions.Target);
++                        configuration.CaseSensitive = ProgramOptions.CaseSensitive;
++                        configuration.PreserveDebugInfo = ProgramOptions.Debug;
++                        if (ProgramOptions.Verbose)
++                        {
++                                configuration.TraceSwitch.Level = ProgramOptions.PrettyVerbose ? TraceLevel.Verbose : TraceLevel.Info;
++                        }
++                        foreach (TypeFilterFactory factory in ProgramOptions.Filters)
++                        {
++                                configuration.AddFilter(factory());
++                        }
++
++			InstrumentationPipeline pipeline = new InstrumentationPipeline(configuration);
++			if (ProgramOptions.NQ)
+ 			{
+ 				pipeline.Add(new DelegateOptimizer());
+ 				pipeline.Add(new PredicateOptimizer());
+ 			}
+ 			
+-            if (options.TransparentPersistence)
++			if (ProgramOptions.TransparentPersistence)
+ 			{
+-				pipeline.Add(new TAInstrumentation(options.Collections));
++				pipeline.Add(new TAInstrumentation(ProgramOptions.Collections));
+ 			}
+ 			
+-            foreach (IAssemblyInstrumentation instr in Factory.Instantiate<IAssemblyInstrumentation>(options.CustomInstrumentations))
++			foreach (IAssemblyInstrumentation instr in Factory.Instantiate<IAssemblyInstrumentation>(ProgramOptions.CustomInstrumentations))
+ 			{
+ 				pipeline.Add(instr);
+ 			}
+ 
+-			if (!options.Fake)
++			if (!ProgramOptions.Fake)
+ 			{
+ 				pipeline.Add(new SaveAssemblyInstrumentation());
+ 				if (pipeline.Context.IsAssemblySigned())
+@@ -119,33 +111,5 @@ namespace Db4oTool
+ 			}
+ 			pipeline.Run();
+ 		}
+-
+-		private static void ReportError(ProgramOptions options, Exception x)
+-		{
+-			if (options.Verbose)
+-			{
+-				Console.WriteLine(x);
+-			}
+-			else
+-			{
+-				Console.WriteLine(x.Message);
+-			}
+-		}
+-
+-		private static Configuration GetConfiguration(ProgramOptions options)
+-		{
+-			Configuration configuration = new Configuration(options.Target);
+-			configuration.CaseSensitive = options.CaseSensitive;
+-			configuration.PreserveDebugInfo = options.Debug;
+-			if (options.Verbose)
+-			{
+-				configuration.TraceSwitch.Level = options.PrettyVerbose ? TraceLevel.Verbose : TraceLevel.Info;
+-			}
+-            foreach (TypeFilterFactory factory in options.Filters)
+-            {
+-                configuration.AddFilter(factory());
+-            }
+-			return configuration;
+-		}
+ 	}
+-}
+\ No newline at end of file
++}
+diff -up db4o-8.0/src/Db4oTool/Db4oTool/ProgramOptions.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool/ProgramOptions.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool/ProgramOptions.cs.noGetOptions	2011-05-16 11:29:38.544673500 -0400
++++ db4o-8.0/src/Db4oTool/Db4oTool/ProgramOptions.cs	2011-05-16 11:32:55.602317651 -0400
+@@ -16,149 +16,107 @@ with this program.  If not, see http://w
+ using System;
+ using System.Collections.Generic;
+ using Db4oTool.Core;
+-using Mono.GetOptions;
++using Mono.Options;
+ 
+ namespace Db4oTool
+ {
+ 	public delegate ITypeFilter TypeFilterFactory();
+ 
+-	public class ProgramOptions : Options
++	public class ProgramOptions
+ 	{
+-		private bool _prettyVerbose;
+-
+-		[Option("Preserve debugging information", "debug")]
+-		public bool Debug;
+-
+-		[Option("Implement Transparent Persistence Support", "tp")]
+-		public bool TransparentPersistence;
+-		
+-		[Option("Instrument native collections for transparent activation/persistence", "collections")]
+-		public bool Collections;
+-
+-		[Option("Case sensitive queries", "case-sensitive")]
+-		public bool CaseSensitive;
+-        
+-        [Option("Verbose operation mode", 'v', "verbose")]
+-		public bool Verbose;
+-
+-		[Option("Optimize all native queries", "nq")]
+-		public bool NQ;
+-
+-		[Option("Pretty verbose operation mode", "vv")]
+-		public bool PrettyVerbose
+-		{
++		private static bool _prettyVerbose;
++		public static bool Debug { get; private set; }
++		public static bool TransparentPersistence { get; private set; }
++		public static bool Collections { get; private set; }
++		public static bool CaseSensitive { get; private set; }
++		public static bool Verbose { get; private set; }
++		public static bool NQ { get; private set; }
++		public static bool PrettyVerbose {
+ 			get { return _prettyVerbose; }
+-
+ 			set { Verbose = _prettyVerbose = value; }
+ 		}
+-
+-		[Option("Fake operation mode, assembly won't be written", "fake")]
+-		public bool Fake;
+-
+-        public List<string> StatisticsFileNames = new List<string>();
+-
+-        [Option("Print statistics for database file PARAM", "statistics")]
+-        public WhatToDoNext StatisticsFileName(string fileName)
+-        {
+-            StatisticsFileNames.Add(fileName);
+-            return WhatToDoNext.GoAhead;
+-        }
+-
+-	    [Option("Run consistency checks on target database.", "check")] 
+-        public bool CheckDatabase;
+-
+-        [Option("Displays file usage statistics for target database.", "fileusage")]
+-        public bool ShowFileUsageStats;
+-
+-		[Option("Installs the db4o performance counter category", "install-performance-counters")]
+-		public bool InstallPerformanceCounters;
+-
+-		public List<string> CustomInstrumentations = new List<string>();
+-
+-		[Option("Custom instrumentation type", "instrumentation", MaxOccurs = -1)]
+-		public WhatToDoNext CustomInstrumentation(string instrumentation)
+-		{
+-			CustomInstrumentations.Add(instrumentation);
+-			return WhatToDoNext.GoAhead;
+-		}
+-
+-		public readonly List<TypeFilterFactory> Filters = new List<TypeFilterFactory>();
+-
+-	    [Option("Filter types to be instrumented by attribute", "by-attribute", MaxOccurs = -1)]
+-		public WhatToDoNext ByAttribute(string attribute)
+-		{
+-			Filters.Add(delegate { return new ByAttributeFilter(attribute); });
+-			return WhatToDoNext.GoAhead;
+-		}
+-
+-		[Option("Custom type filter", "by-filter", MaxOccurs = -1)]
+-		public WhatToDoNext ByFilter(string filterType)
+-		{
+-			Filters.Add(delegate { return Factory.Instantiate<ITypeFilter>(filterType); });
+-			return WhatToDoNext.GoAhead;
+-		}
+-
+-		[Option("Filter types by name (with regular expression syntax)", "by-name", MaxOccurs = -1)]
+-		public WhatToDoNext ByName(string name)
+-		{
+-			Filters.Add(delegate { return new ByNameFilter(name); });
+-			return WhatToDoNext.GoAhead;
+-		}
+-
+-		[Option("Negates the last filter.", "not", MaxOccurs = -1)]
+-		public WhatToDoNext Not()
+-		{
+-			if (Filters.Count == 0) throw new InvalidOperationException("'not' must be specified after a filter");
+-
+-			int lastIndex = Filters.Count - 1;
+-			TypeFilterFactory lastFilter = Filters[lastIndex];
+-			Filters[lastIndex] = delegate { return new NotFilter(lastFilter()); };
+-			return WhatToDoNext.GoAhead;
+-		}
+-
+-		[Option("Same as 'tp'", "ta")]
+-		public WhatToDoNext TA()
+-		{
+-			TransparentPersistence = true;
+-			return WhatToDoNext.GoAhead;
+-		}
+-
+-		public string Target
+-		{
+-			get
+-			{
+-				if (RemainingArguments == null) return null;
+-				if (RemainingArguments.Length != 1) return null;
+-				return RemainingArguments[0];
++		public static bool Fake { get; private set; }
++		public static bool CheckDatabase { get; private set; }
++		public static bool ShowFileUsageStats { get; private set; }
++		public static bool InstallPerformanceCounters { get; private set; }
++		public static bool HelpShown { get; private set; }
++		public static string Target { get; private set; }
++		public static bool IsValid { get; private set; }
++		static bool databaseTarget;
++		static bool enhancementTarget;
++
++		public static List<string> StatisticsFileNames = new List<string>();
++		public static List<string> CustomInstrumentations = new List<string>();
++		public static readonly List<TypeFilterFactory> Filters = new List<TypeFilterFactory>();
++
++		static OptionSet Options { get; set; }
++
++		static ProgramOptions ()
++		{
++			Options = new OptionSet () {
++				{ "by-attribute=", "Filter types to be instrumented by attribute", val => Filters.Add(delegate { return new ByAttributeFilter(val); }) },
++				{ "by-filter=", "Custom type filter", val => Filters.Add(delegate { return Factory.Instantiate<ITypeFilter>(val); }) },
++				{ "by-name=", "Filter types by name (with regular expression syntax)", val => Filters.Add(delegate { return new ByNameFilter(val); }) },
++				{ "case-sensitive", "Case sensitive queries", val => CaseSensitive = true },
++				{ "check", "Run consistency checks on target database", val => CheckDatabase = true },
++				{ "collections", "Instrument native collections for transparent activation/persistence", val => Collections = true },
++				{ "debug", "Preserve debugging information", val => Debug = true },
++				{ "fake", "Fake operation mode, assembly won't be written", val => Fake = true },
++				{ "fileusage", "Displays file usage statistics for target database", val => ShowFileUsageStats = true },
++				{ "h|?|help", "Show this help list", help => DoHelp () },
++				{ "install-performance-counters", "Installs the db4o performance counter category", val => InstallPerformanceCounters = true },
++				{ "instrumentation=", "Custom instrumentation type", val => CustomInstrumentations.Add(val) },
++				{ "not", "Negates the last filter", val => {
++					if (Filters.Count == 0) throw new InvalidOperationException("'not' must be specified after a filter");
++					int lastIndex = Filters.Count - 1;
++					TypeFilterFactory lastFilter = Filters[lastIndex];
++					Filters[lastIndex] = delegate { return new NotFilter(lastFilter()); };
++					}
++				},
++				{ "nq", "Optimize all native queries", val => NQ = true },
++				{ "statistics=", "Print statistics for database file PARAM", val => StatisticsFileNames.Add(val) },
++				{ "tp|ta", "Implement Transparent Persistence Support", val => TransparentPersistence = true },
++				{ "v|verbose", "Verbose operation mode", val => Verbose = true },
++				{ "vv", "Pretty verbose operation mode", val => _prettyVerbose = true },
++			};
++		}
++
++		public static void ProcessArgs (string[] args)
++		{
++			List<string> extra;
++			try {
++				extra = Options.Parse (args);
++			} 
++			catch (OptionException ex) {
++				DoHelp ();
++				return;
+ 			}
+-
+-			set
+-			{
+-				RemainingArguments = new string[] { value };
++			if (extra.Count > 0) {
++				Target = string.Join (" ", extra.ToArray ()); 
++			} else {
++				IsValid = false;
++				DoHelp ();
++				return;
+ 			}
+-		}
+-
+-		public bool IsValid
+-		{
+-			get
+-			{
+-			    bool databaseTarget = CheckDatabase || ShowFileUsageStats;
+-			    bool enhancementTarget = NQ || TransparentPersistence || CustomInstrumentations.Count > 0;
+-
+-                if (databaseTarget && enhancementTarget)
+-                {
+-                    return false;
+-                }
+-
+-				return StatisticsFileNames.Count > 0 || InstallPerformanceCounters ||
+-                    (Target != null
+-					   && (databaseTarget || enhancementTarget));
++			if (Target == null) {
++				IsValid = false;
++			} else {
++				databaseTarget = CheckDatabase || ShowFileUsageStats;
++				enhancementTarget = NQ || TransparentPersistence || CustomInstrumentations.Count > 0;
++				if (databaseTarget && enhancementTarget) {
++					IsValid = false;
++				} else {
++					IsValid = StatisticsFileNames.Count > 0 || InstallPerformanceCounters || (Target != null && (databaseTarget || enhancementTarget));
++				}
+ 			}
+ 		}
+ 
+-		public ProgramOptions()
++		public static void DoHelp ()
+ 		{
+-			DontSplitOnCommas = true;
++			Console.WriteLine ("Usage: Db4oTool [options] <target>");
++			Console.WriteLine ("Options:");
++			Options.WriteOptionDescriptions (Console.Out);
++			HelpShown = true;
+ 		}
+ 	}
+-}
+\ No newline at end of file
++}
+diff -up db4o-8.0/src/Db4oTool/Db4oTool/Properties/AssemblyInfo.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool/Properties/AssemblyInfo.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool/Properties/AssemblyInfo.cs.noGetOptions	2011-05-16 11:29:38.546673476 -0400
++++ db4o-8.0/src/Db4oTool/Db4oTool/Properties/AssemblyInfo.cs	2011-05-16 11:29:38.550673428 -0400
+@@ -30,14 +30,6 @@ using System.Security;
+ 
+ [assembly: AssemblyVersion("8.0.184.15484")]
+ 
+-[assembly: Mono.Author("Jean Baptiste Evain")]
+-[assembly: Mono.Author("Rodrigo B. de Oliveira")]
+-[assembly: Mono.Author("Klaus Wuestefeld")]
+-[assembly: Mono.Author("Patrick Roemer")]
+-
+-[assembly: Mono.About("")]
+-[assembly: Mono.UsageComplement("<target>")]
+-
+ [assembly: AllowPartiallyTrustedCallers]
+ 
+ #if NET_4_0
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/AllTests.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool.Tests/AllTests.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/AllTests.cs.noGetOptions	2011-01-28 22:15:10.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/AllTests.cs	2011-05-16 11:29:38.551673416 -0400
+@@ -24,7 +24,6 @@ namespace Db4oTool.Tests
+ 		{
+ 			return new Type[]
+ 				{
+-					typeof(ProgramOptionsTestCase),
+ 					typeof(Core.AllTests),
+ 					typeof(NQ.AllTests),
+ 					typeof(TA.AllTests),
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/AllTests.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/AllTests.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/AllTests.cs.noGetOptions	2011-01-28 22:15:10.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/AllTests.cs	2011-05-16 11:29:38.551673416 -0400
+@@ -31,10 +31,8 @@ namespace Db4oTool.Tests.Core
+ 					typeof(ContextVariableTestCase),
+ 					typeof(DebugInformationTestSuite),
+ 					typeof(ILPatternTestCase),
+-					typeof(InstallPerformanceCountersTestCase),
+ 					typeof(CustomInstrumentationTestCase),
+ 					typeof(PreserveDebugInfoTestCase),
+-					typeof(InstrumentingCFAssemblyTestCase),
+ 					typeof(StackAnalyzerTestCase),
+ 				};
+ 		}
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstallPerformanceCountersTestCase.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstallPerformanceCountersTestCase.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstallPerformanceCountersTestCase.cs.noGetOptions	2011-01-28 22:15:14.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstallPerformanceCountersTestCase.cs	2011-05-16 11:29:38.551673416 -0400
+@@ -1,65 +0,0 @@
+-/* This file is part of the db4o object database http://www.db4o.com
+-
+-Copyright (C) 2004 - 2010  Versant Corporation http://www.versant.com
+-
+-db4o is free software; you can redistribute it and/or modify it under
+-the terms of version 3 of the GNU General Public License as published
+-by the Free Software Foundation.
+-
+-db4o 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/. */
+-using System;
+-using System.Diagnostics;
+-using System.Security.Principal;
+-using System.Threading;
+-using Db4objects.Db4o.Monitoring;
+-using Db4oUnit;
+-
+-namespace Db4oTool.Tests.Core
+-{
+-	class InstallPerformanceCountersTestCase : ITestCase
+-	{
+-		public void Test()
+-		{
+-			if (!IsCurrentUserAnAdministrator() && IsLenientPerformanceCounterInstallTest())
+-			{
+-				Console.Error.WriteLine("WARNING: {0} requires administrator access rights to run.", GetType());
+-				return;
+-			}
+-
+-			if (Db4oCategoryExists())
+-			{
+-				PerformanceCounterCategory.Delete(Db4oPerformanceCounters.CategoryName);
+-			}
+-
+-			ProgramOptions options = new ProgramOptions();
+-			options.InstallPerformanceCounters = true;
+-
+-			Db4oTool.Program.Run(options);
+-
+-			Assert.IsTrue(Db4oCategoryExists());
+-		}
+-
+-		private static bool IsLenientPerformanceCounterInstallTest()
+-		{
+-			return !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("LENIENT_PERFCOUNTER_INSTALL_TEST"));
+-		}
+-
+-		private static bool Db4oCategoryExists()
+-		{
+-			return PerformanceCounterCategory.Exists(Db4oPerformanceCounters.CategoryName);
+-		}
+-
+-		private static bool IsCurrentUserAnAdministrator()
+-		{
+-			AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
+-			WindowsPrincipal principal = (WindowsPrincipal)Thread.CurrentPrincipal;
+-			return principal.IsInRole(WindowsBuiltInRole.Administrator);
+-		}
+-	}
+-}
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstrumentingCFAssemblyTestCase.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstrumentingCFAssemblyTestCase.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstrumentingCFAssemblyTestCase.cs.noGetOptions	2011-01-28 22:15:14.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/Core/InstrumentingCFAssemblyTestCase.cs	2011-05-16 11:29:38.552673404 -0400
+@@ -1,124 +0,0 @@
+-/* This file is part of the db4o object database http://www.db4o.com
+-
+-Copyright (C) 2004 - 2010  Versant Corporation http://www.versant.com
+-
+-db4o is free software; you can redistribute it and/or modify it under
+-the terms of version 3 of the GNU General Public License as published
+-by the Free Software Foundation.
+-
+-db4o 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/. */
+-using System;
+-using System.Collections.Generic;
+-using System.IO;
+-using System.Reflection;
+-using Db4objects.Db4o.TA;
+-using Db4oTool.Core;
+-using Db4oUnit;
+-using Mono.Cecil;
+-
+-namespace Db4oTool.Tests.Core
+-{
+-	public class InstrumentingCFAssemblyTestCase : ITestCase
+-	{
+-		private const string CF20_VERSION = "2.0.0.0";
+-		private const string CF35_VERSION = "3.5.0.0";
+-
+-		public void TestCF20Instrumentation()
+-		{
+-			AssertCFInstrumentation(CF20_VERSION);
+-		}
+-
+-		public void TestCF35Instrumentation()
+-		{
+-			AssertCFInstrumentation(CF35_VERSION);
+-		}
+-
+-		private void AssertCFInstrumentation(string version)
+-		{
+-			string assemblyPath = CompileAndInstrumentCFAssembly(version);
+-			AssertInstrumentedCFAssembly(assemblyPath);
+-		}
+-
+-		private static void AssertInstrumentedCFAssembly(string assemblyPath)
+-		{
+-			AppDomain appDomain = AppDomain.CreateDomain("CF_InstrumentationTest");
+-
+-			try
+-			{
+-				appDomain.DoCallBack(new InstrumentationAsserter(assemblyPath).Run);
+-			}
+-			finally
+-			{
+-				AppDomain.Unload(appDomain);
+-			}
+-			
+-		}
+-
+-		private string CompileAndInstrumentCFAssembly(string version)
+-		{
+-			string assemblyPath = String.Empty;
+-			CompilationServices.ExtraParameters.Using(
+-				"/nostdlib+",
+-
+-				delegate
+-					{
+-						assemblyPath =
+-							CompilationServices.EmitAssemblyFromResource(
+-								ResourceServices.CompleteResourceName(GetType(), "CFInstrumentationSubject"),
+-								ReferencesFor(version));
+-
+-						Db4oTool.Program.Run(ProgramOptionsFor(assemblyPath));
+-					});
+-
+-			return assemblyPath;
+-		}
+-
+-		private static IEnumerable<string> CFVersions()
+-		{
+-			yield return CF20_VERSION;
+-			yield return CF35_VERSION;
+-		}
+-
+-		private static ProgramOptions ProgramOptionsFor(string assemblyPath)
+-		{
+-			ProgramOptions po = new ProgramOptions();
+-			po.ProcessArgs(new string[] {"-ta", assemblyPath,});
+-
+-			return po;
+-		}
+-
+-		private Assembly[] ReferencesFor(string version)
+-		{
+-			string cfAssembliesFolder = CompactFrameworkServices.FolderFor(version);
+-			
+-			return new Assembly[]
+-			       	{
+-						Assembly.LoadFile(Path.Combine(cfAssembliesFolder, "mscorlib.dll")),
+-						Assembly.LoadFile(Path.Combine(cfAssembliesFolder, "System.dll")),
+-					};
+-		}
+-	}
+-
+-	[Serializable]
+-	internal class InstrumentationAsserter
+-	{
+-		private readonly string _assemblyPath;
+-
+-		public InstrumentationAsserter(string assemblyPath)
+-		{
+-			_assemblyPath = assemblyPath;
+-		}
+-
+-		public void Run()
+-		{
+-			Assembly assembly = Assembly.LoadFrom(_assemblyPath);
+-			Assert.IsTrue(typeof(IActivatable).IsAssignableFrom(assembly.GetType("Db4oTool.Tests.Core.Resources.CFInstrumentationSubject")));
+-		}
+-	}
+-}
+diff -up db4o-8.0/src/Db4oTool/Db4oTool.Tests/ProgramOptionsTestCase.cs.noGetOptions db4o-8.0/src/Db4oTool/Db4oTool.Tests/ProgramOptionsTestCase.cs
+--- db4o-8.0/src/Db4oTool/Db4oTool.Tests/ProgramOptionsTestCase.cs.noGetOptions	2011-01-28 22:15:14.000000000 -0500
++++ db4o-8.0/src/Db4oTool/Db4oTool.Tests/ProgramOptionsTestCase.cs	2011-05-16 11:29:38.552673404 -0400
+@@ -1,60 +0,0 @@
+-/* This file is part of the db4o object database http://www.db4o.com
+-
+-Copyright (C) 2004 - 2010  Versant Corporation http://www.versant.com
+-
+-db4o is free software; you can redistribute it and/or modify it under
+-the terms of version 3 of the GNU General Public License as published
+-by the Free Software Foundation.
+-
+-db4o 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/. */
+-using Db4oUnit;
+-
+-namespace Db4oTool.Tests
+-{
+-	class ProgramOptionsTestCase : ITestCase
+-	{	
+-		public void TestTpSameAsTA()
+-		{
+-			AssertTransparentPersistence("-tp");
+-			AssertTransparentPersistence("-ta");
+-		}
+-
+-		public void TestInstallPerformanceCounters()
+-		{
+-			ProgramOptions options = new ProgramOptions();
+-			Assert.IsFalse(options.InstallPerformanceCounters);
+-			options.ProcessArgs(new string[] { "--install-performance-counters"});
+-			Assert.IsTrue(options.InstallPerformanceCounters);
+-		}
+-
+-        public void TestInvalidOptionsCombination()
+-        {
+-            AssertInvalidOptionsCombination("-nq -fileusage mytarget");
+-            AssertInvalidOptionsCombination("-nq -check mytarget");
+-            AssertInvalidOptionsCombination("-ta -fileusage mytarget");
+-            AssertInvalidOptionsCombination("-ta -check mytarget");
+-            AssertInvalidOptionsCombination("-tp -fileusage mytarget");
+-        }
+-
+-	    private void AssertInvalidOptionsCombination(string arguments)
+-	    {
+-            ProgramOptions options = new ProgramOptions();
+-            options.ProcessArgs(arguments.Split(' '));
+-	        Assert.IsFalse(options.IsValid);
+-	    }
+-
+-	    private static void AssertTransparentPersistence(string arg)
+-		{
+-			ProgramOptions options = new ProgramOptions();
+-			Assert.IsFalse(options.TransparentPersistence);
+-			options.ProcessArgs(new string[] { arg });
+-			Assert.IsTrue(options.TransparentPersistence);
+-		}
+-	}
+-}
+diff -up db4o-8.0/src/Makefile.noGetOptions db4o-8.0/src/Makefile
+--- db4o-8.0/src/Makefile.noGetOptions	2011-05-16 11:29:38.534673620 -0400
++++ db4o-8.0/src/Makefile	2011-05-16 11:29:38.603672795 -0400
+@@ -28,7 +28,7 @@ build: core cs optional nq linq tool tes
+ 
+ postbuild:
+ 
+-tests: unit_ext tool_tests linq_instr_tests
++tests: unit_ext tool_tests
+ 	cd $(TESTS) ; $(MAKE)
+ 
+ linq_tests:
diff --git a/db4o.spec b/db4o.spec
index e757f61..ca034a7 100644
--- a/db4o.spec
+++ b/db4o.spec
@@ -4,15 +4,21 @@
 
 Summary: A native OODBMS for Java/.NET/Mono - Mono version
 Name: db4o
-Version: 7.4
-Release: 4%{?dist}
+Version: 8.0
+Release: 1%{?dist}
 License: GPLv2
-Patch0: db4o-74-make.patch
+Patch0: db4o-8.0-make.patch
+Patch1: db4o-8.0-mono-reflection.patch
+Patch2: db4o-8.0-CecilFix.patch
+Patch3: db4o-8.0-noGetOptions2.patch
+Patch4: db4o-8.0-extensions-make-fix.patch
+Patch5: db4o-8.0-more-makefile-fixes.patch
+Patch6: db4o-8.0-db4otool-testfix.patch
 Group: Development/Libraries
-Source: %{name}-%{version}-net2.zip
+Source: http://www.db4o.com/downloads/%{name}-%{version}-net35.zip
 URL: http://www.db4o.com/
-Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: mono-devel, mono-cecil-flowanalysis-devel
+BuildRequires: mono-reflection-devel
 
 ExclusiveArch: %ix86 x86_64 ia64 %{arm} sparc alpha s390 s390x
 
@@ -40,6 +46,16 @@ Development files for db4o
 %prep
 %setup -q 
 %patch0 -p1 -b .makepatch
+%patch1 -p1 -b .mono-reflection
+%patch2 -p1 -b .CecilFix
+dos2unix src/Db4oTool/Db4oTool/Program.cs 
+dos2unix src/Db4oTool/Db4oTool/ProgramOptions.cs
+dos2unix src/Db4oTool/Db4oTool/Properties/AssemblyInfo.cs
+%patch3 -p1 -b .noGetOptions
+%patch4 -p1 -b .extensions-make-fix
+%patch5 -p1 -b .makefix
+%patch6 -p1 -b .TestFix
+cp %{_libdir}/mono-source-libs/Options.cs src/Db4oTool/Db4oTool/
 #sed -i 's/\r//' doc/tutorial/vb/index.html
 #sed -i 's/\r//' doc/tutorial/index.html
 sed 's!/usr/lib!%{_libdir}!' -i src/Makefile
@@ -47,23 +63,24 @@ rm -rf src/Libs/*
 sed -i 's|Mono.Cecil.dll|%{_libdir}/mono/gac/Mono.Cecil/%{cecilver}__%{ceciltoken}/Mono.Cecil.dll|' src/include.mk
 sed -i 's|Cecil.FlowAnalysis.dll|%{_libdir}/mono/Cecil.FlowAnalysis/Cecil.FlowAnalysis.dll|' src/include.mk
 sed -i 's|Mono.GetOptions.dll|%{_libdir}/mono/2.0/Mono.GetOptions.dll|' src/include.mk
+sed -i 's|Mono.Reflection.dll|%{_libdir}/mono/Mono.Reflection/Mono.Reflection.dll|' src/include.mk
 
 %build
 rm -rf %{buildroot}
 cd src
-make 
+make core cs optional nq linq tool
 
 %install
-rm -rf %{buildroot}
 mkdir -p %{buildroot}/%{_libdir}/pkgconfig
 mkdir -p %{buildroot}/%{_libdir}/mono/gac
 mkdir -p %{buildroot}/%{_bindir}
+
 gacutil -i src/bin/Db4objects.Db4o.dll -f -package db4o -root %{buildroot}%{_libdir}
+gacutil -i src/bin/Db4objects.Db4o.CS.dll -f -package db4o -root %{buildroot}%{_libdir}
 gacutil -i src/bin/Db4objects.Db4o.Instrumentation.dll -f -package db4o -root %{buildroot}%{_libdir}
 gacutil -i src/bin/Db4objects.Db4o.Linq.dll -f -package db4o -root %{buildroot}%{_libdir}
 gacutil -i src/bin/Db4objects.Db4o.NativeQueries.dll -f -package db4o -root %{buildroot}%{_libdir}
-gacutil -i src/bin/Db4oUnit.dll -f -package db4o -root %{buildroot}%{_libdir}
-gacutil -i src/bin/Db4oUnit.Extensions.dll -f -package db4o -root %{buildroot}%{_libdir}
+gacutil -i src/bin/Db4objects.Db4o.Optional.dll -f -package db4o -root %{buildroot}%{_libdir}
 mkdir -p %{buildroot}%{_libdir}/mono/db4o
 cp src/bin/* %{buildroot}%{_libdir}/mono/db4o
 
@@ -74,8 +91,8 @@ libdir=%{_libdir}
 
 Name: db4o
 Description: db4o - an object based database system
-Version: 7.4
-Libs: -r:%{_libdir}/mono/db4o/Db4objects.Db4o.dll, -r:%{_libdir}/mono/db4o/Db4oUnit.dll, -r:%{_libdir}/mono/db4o/Db4objects.Db4o.Instrumentation.dll, -r:%{_libdir}/mono/db4o/Db4oUnit.Extensions.dll -r:%{_libdir}/mono/db4o/Db4objects.Db4o.Linq.dll -r:%{_libdir}/mono/db4o/Db4objects.Db4o.NativeQueries.dll
+Version: 8.0
+Libs: -r:%{_libdir}/mono/db4o/Db4objects.Db4o.dll, -r:%{_libdir}/mono/db4o/Db4objects.Db4o.CS.dll, -r:%{_libdir}/mono/db4o/Db4objects.Db4o.Instrumentation.dll, -r:%{_libdir}/mono/db4o/Db4objects.Db4o.Linq.dll -r:%{_libdir}/mono/db4o/Db4objects.Db4o.NativeQueries.dll, -r:%{_libdir}/mono/db4o/Db4objects.Db4o.Optional.dll
 EOF
 
 cat <<EOF >%{buildroot}/%{_bindir}/Db4oTool
@@ -83,37 +100,9 @@ cat <<EOF >%{buildroot}/%{_bindir}/Db4oTool
 env mono %{_libdir}/mono/db4o/Db4oTool.exe "$@"
 EOF
 
-cat <<EOF >%{buildroot}/%{_bindir}/Db4oTool-Tests
-#!/bin/sh
-env mono %{_libdir}/mono/db4o/Db4oTool.Tests.exe "$@"
-EOF
-
-cat <<EOF >%{buildroot}/%{_bindir}/Db4o-LinqTests
-#!/bin/sh
-env mono %{_libdir}/mono/db4o/Db4objects.Db4o.Linq.Tests.exe "$@"
-EOF
-
-cat <<EOF >%{buildroot}/%{_bindir}/Db4o-LinqInstrumentationTests
-#!/bin/sh
-env mono %{_libdir}/mono/db4o/Db4objects.Db4o.Linq.Instrumentation.Tests.exe "$@"
-EOF
-
-cat <<EOF >%{buildroot}/%{_bindir}/Db4oTests
-#!/bin/sh
-env mono %{_libdir}/mono/db4o/Db4objects.Db4o.Tests.exe "$@"
-EOF
-
 chmod 755 %{buildroot}/%{_bindir}/Db4oTool
-chmod 755 %{buildroot}/%{_bindir}/Db4oTool-Tests
-chmod 755 %{buildroot}/%{_bindir}/Db4o-LinqTests
-chmod 755 %{buildroot}/%{_bindir}/Db4o-LinqInstrumentationTests
-chmod 755 %{buildroot}/%{_bindir}/Db4oTests
-
-%clean
-rm -rf %{buildroot}
 
 %files
-%defattr(-,root,root,-)
 %{_bindir}/*
 %{_libdir}/mono/db4o/
 %{_libdir}/mono/gac/Db4*
@@ -125,6 +114,9 @@ rm -rf %{buildroot}
 %{_libdir}/pkgconfig/db4o.pc
 
 %changelog
+* Wed Jun 29 2011 Tom Callaway <spot at fedoraproject.org> - 8.0-1
+- update to 8.0
+
 * Wed Jun 01 2011 Paul Whalen <paul.whalen at senecac.on.ca> - 7.4-4
 - Added correct arm macro to ExclusiveArch
 
diff --git a/sources b/sources
index f15c6e9..95b9f8f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-c9cb469cb95a44076ddd2cad34e015e8  db4o-7.4-net2.zip
+332de4a3c114f930f8e2f38e28b49b98  db4o-8.0-net35.zip


More information about the scm-commits mailing list