View Issue Details

IDProjectCategoryView StatusLast Update
0001980SOGoSOPEpublic2012-10-18 10:42
Reporterbuzzdee Assigned Tojraby 
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Version1.3.18 
Target Version2.0.2Fixed in Version2.0.2 
Summary0001980: incompatibilities with libobjc2 on amd64
Description

There are a couple of problems with running SOPE/SOGo on 64 bit with libobjc2. Tried on OpenBSD amd64 5.2 -current. Patches for now are against 1.3.17, but will likely also apply against current sope/sogo sources.

Firts problem is addressed in patch: sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m

which addresses a BUS ERROR in SOGo, when trying to get to the login page.
Without this patch, I run into the following backtrace in gdb:
Program received signal SIGBUS, Bus error.
[Switching to process 25326, thread 0x20c158800]
0x00000002073e5ffe in -[_WOHrefHyperlink
_appendHrefToResponse:inContext:] (self=0x202542908, _cmd=Variable
"_cmd" is not available.
)
at _WOComplexHyperlink.m:410
410 if (((Class )hrefValue == NSURLClass) ||
Current language: auto; currently minimal
(gdb) bt
#0 0x00000002073e5ffe in -[_WOHrefHyperlink
_appendHrefToResponse:inContext:] (self=0x202542908, _cmd=Variable
"_cmd" is not available.
)
at _WOComplexHyperlink.m:410
0000001 0x00000002073e67dd in -[_WOComplexHyperlink
appendToResponse:inContext:] (self=0x202542908, _cmd=Variable "_cmd" is
not available.
)
at _WOComplexHyperlink.m:277
0000002 0x00000002073cc242 in -[WOGenericContainer
appendToResponse:inContext:] (self=0x20f7ad508, _cmd=Variable "_cmd" is
not available.
)
at WOGenericContainer.m:121
0000003 0x00000002073c5d4c in -[WOCompoundElement
appendToResponse:inContext:] (self=0x20a337808, _cmd=0x2076ce920,
_response=0x20ccf6108, _ctx=0x203962408) at WOCompoundElement.m:247
0000004 0x00000002073cc242 in -[WOGenericContainer
appendToResponse:inContext:] (self=0x208f8f388, _cmd=Variable "_cmd" is
not available.
...
(gdb) frame 0
#0 0x00000002073e5ffe in -[_WOHrefHyperlink
_appendHrefToResponse:inContext:] (self=0x202542908, _cmd=Variable
"_cmd" is not available.
)
at _WOComplexHyperlink.m:410
410 if (((Class )hrefValue == NSURLClass) ||
(gdb) list
405 url = nil;
406
407 if (hrefValue == nil)
408 return NO;
409
410 if (((Class )hrefValue == NSURLClass) ||
411 [hrefValue isKindOfClass:NSURLClass]) {
412 s = [hrefValue stringValueRelativeToURL:base];
413 }
414 else {
(gdb) print hrefValue
$1 = (struct objc_object ) 0x460000000000000c
(gdb) print
hrefValue
Cannot access memory at address 0x460000000000000c

TagsNo tags attached.

Activities

2012-09-12 09:03

 

patch-sope-appserver_NGObjWeb_DynamicElements__WOComplexHyperlink_m (496 bytes)   
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m.orig	Tue Jul 24 15:22:00 2012
+++ sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m	Wed Sep 12 08:10:56 2012
@@ -407,7 +407,7 @@ static BOOL debugStaticLinks = NO;
   if (hrefValue == nil)
     return NO;
   
-  if ((*(Class *)hrefValue == NSURLClass) ||
+  if ([hrefValue isMemberOfClass:NSURLClass] ||
       [hrefValue isKindOfClass:NSURLClass]) {
     s = [hrefValue stringValueRelativeToURL:base];
   }

2012-09-12 09:07

 

patch-sope-mime_NGMime_NGMimeFileData_m (439 bytes)   
$OpenBSD$
--- sope-mime/NGMime/NGMimeFileData.m.orig	Wed Sep 12 11:32:13 2012
+++ sope-mime/NGMime/NGMimeFileData.m	Wed Sep 12 11:32:30 2012
@@ -119,7 +119,7 @@ static unsigned      tmpmask  = 0600;
   return [[self _data] bytes];
 }
 
-- (unsigned int)length {
+- (NSUInteger)length {
   if (self->length == -1) {
     self->length = [[[[NSFileManager defaultManager]
                                      fileAttributesAtPath:self->path
buzzdee

buzzdee

2012-09-12 09:09

reporter   ~0004467

The second patch patch-sope-mime_NGMime_NGMimeFileData_m fixes an exception in NSData when trying to send a mail in the web mail with an attachment. NSData -lenght is supposed to be overridden in the subclass. NSData -length is
-(NSUInteger)length, but NGMimeFileData -length is:
-(unsigned int)length.
On 64 bit, the method signature differs, and therefore the exception, because NSData cannot find the method of the subclass.

buzzdee

buzzdee

2012-09-12 09:20

reporter   ~0004470

The last problem noted so far is the most severe, when starting up sogo, lots of exceptions are thrown like this:

2012-09-11 18:26:15.804 sogod[7809] WOxTemplateBuilder.m:42 Assertion
failed in WOxTemplateBuilder(instance), method initialize. invalid
superclass (WOTemplateBuilder) version 0 !
EXCEPTION: <NSException: 0x20a0b0488>
NAME:NSInternalInconsistencyException REASON:WOxTemplateBuilder.m:42
Assertion failed in WOxTemplateBuilder(instance), method initialize.
invalid superclass (WOTemplateBuilder) version 0 ! INFO:(null)

and SOGo refuses to start.

Many, or maybe even all classes in SOPE have an initialize statements like this:

NSAssert2([super version] == 2,
@"invalid superclass (%@) version %i !",
NSStringFromClass([self superclass]), [super version]);

which on amd64, [super version] always returns 0. The underlying problem is that, -[NSObject version] is defined to return NSInteger, but all the classes
in SOPE return (int). Since its different method signature, libobjc2 doesn't use the version method of the SOPE classes, but returns the version defined in NSObject, which returns 0.

I asked David Chisnall about that problem, and he answered:

Would it help switching all of those version methods to NSInteger?

This is almost certainly the problem. The type-dependent dispatch stuff in libobjc2 will treat the two +version methods as different methods, as they have different return types. On 32-bit, they're the same - NSInteger is just a typedef for int - but on 64-bit they are different and so you will be calling the superclass version.

This is, however, a symptom of another bug. SOGo should not be overriding the version method, it should be calling [self setVersion:] or class_setVersion() in the +load or +initialize method. Otherwise, the class returned by class_getVersion() and by +version will be different.

Which offer multiple ways to solve the problem:

A) since SOPE/SOGo comes always bundled, so the version of the classes should always be right, someone could remove all +version methods from the SOPE classes, and remove all those checks in +initialize of the subclasses too.

B) remove all +version implementations in the classes where they are defined, and follow Davids suggestion, and use [self setVersion:] or class_setVersion() in their respective +initialize methods. Then the NSAsserts could stay as is, and are supposed to work.

Right now, to get SOPE/SOGo to work again for me, I just uncommented all NSAssert2's in the +initialize methods of the subclasses. But I could look into getting a patch ready for A) or B). Let me know what you would prefer and I could start working on it.

ludovic

ludovic

2012-09-20 09:17

administrator   ~0004502

I prefer option A.

This code is probably worthless anyway and SOPE has enough lameness in it right now that the more we remove, the better it gets (but we still have a long way to go!).

buzzdee

buzzdee

2012-09-20 10:16

reporter   ~0004509

OK, I was actually looking into option B) in the meantime, and have a patch ready, which works for me. Was a lot of painful work, but I can redo it, and go for option A) and remove all this cruft.

B) may things even a little bit faster on startup, and when classes get loaded later on, if recognizable at all on fast machines ;).

2012-09-20 13:21

 

fix-sogo-with-libobjc2.diff (1,045 bytes)   
$OpenBSD$
--- SOPE/NGCards/iCalObject.m.orig	Wed Sep 19 17:57:39 2012
+++ SOPE/NGCards/iCalObject.m	Thu Sep 20 18:41:57 2012
@@ -25,10 +25,6 @@
 
 @implementation iCalObject
 
-+ (int)version {
-  return 0;
-}
-
 // what shall we take, if no timeZone is specified in dateValues
 static NSTimeZone *defTZ = nil;
 + (void)setICalDefaultTimeZone:(NSTimeZone *)_timeZone {
$OpenBSD$
--- UI/SOGoUI/UIxComponent.m.orig	Sat Sep 15 10:32:01 2012
+++ UI/SOGoUI/UIxComponent.m	Thu Sep 20 18:40:53 2012
@@ -64,15 +64,7 @@ static NSMutableArray *abbrDayLabelKeys   = nil;
 static NSMutableArray *monthLabelKeys     = nil;
 static NSMutableArray *abbrMonthLabelKeys = nil;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   if (dayLabelKeys == nil) {
     dayLabelKeys = [[NSMutableArray alloc] initWithCapacity:7];
     [dayLabelKeys addObject:@"Sunday"];
fix-sogo-with-libobjc2.diff (1,045 bytes)   

2012-09-20 13:22

 

fix-sope-with-libobjc2.diff (77,836 bytes)   
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOAssociation.m	Thu Sep 20 18:56:23 2012
@@ -42,10 +42,6 @@
 
 static Class WOKeyPathAssociationClass = Nil;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   NSString *s;
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOKeyPathAssociationSystemKVC.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOKeyPathAssociationSystemKVC.m	Thu Sep 20 18:17:38 2012
@@ -48,9 +48,6 @@
 static NSNumber *yesNum = nil;
 static NSNumber *noNum  = nil;
 
-+ (int)version {
-  return [super version] + 0; /* v2 */
-}
 + (void)initialize {
   if (yesNum == nil) yesNum = [[NSNumber numberWithBool:YES] retain];
   if (noNum  == nil) noNum  = [[NSNumber numberWithBool:NO]  retain];
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOKeyPathAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOKeyPathAssociation.m	Thu Sep 20 18:17:23 2012
@@ -174,10 +174,6 @@ typedef union {
 
 @implementation WOKeyPathAssociation
 
-+ (int)version {
-  return 2;
-}
-
 static Class NumberClass = Nil;
 static Class StringClass = Nil;
 #if NeXT_Foundation_LIBRARY || COCOA_Foundation_LIBRARY || \
@@ -203,11 +199,7 @@ static NSNumber *uinum0 = nil, *uinum1 = nil;
 
   if (isInitialized) return;
   isInitialized = YES;
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
-  
   debugOn = [[[NSUserDefaults standardUserDefaults]
                               objectForKey:@"WODebugKeyPathAssociation"]
                               boolValue] ? 1 : 0;
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOLabelAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOLabelAssociation.m	Thu Sep 20 18:17:54 2012
@@ -30,15 +30,6 @@
 
 @implementation WOLabelAssociation
 
-+ (int)version {
-  return [super version] /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithKey:(NSString *)_key inTable:(NSString *)_table
   withDefaultValue:(NSString *)_default
 {
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOResourceURLAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOResourceURLAssociation.m	Thu Sep 20 18:18:08 2012
@@ -32,15 +32,8 @@
 
 static BOOL doDebug = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   doDebug = [ud boolForKey:@"WOResourceURLAssociationDebugEnabled"];
 }
 
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOScriptAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOScriptAssociation.m	Thu Sep 20 18:18:22 2012
@@ -33,14 +33,6 @@
 
 static BOOL doDebug = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
 + (NSString *)defaultScriptLanguage {
   return @"javascript";
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOValueAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOValueAssociation.m	Thu Sep 20 18:18:37 2012
@@ -29,13 +29,7 @@
 
 static Class StrClass = Nil;
 
-+ (int)version {
-  return [super version] /* v2 */;
-}
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   StrClass = [NSString class];
 }
 
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOActionURL.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOActionURL.m	Thu Sep 20 18:13:20 2012
@@ -57,15 +57,6 @@
 
 @implementation WOActionURL
 
-+ (int)version {
-  return 1;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 + (BOOL)containsLinkInAssociations:(NSDictionary *)_assocs {
   if (_assocs == nil) return NO;
   if ([_assocs objectForKey:@"href"])             return YES;
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOBrowser.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOBrowser.m	Thu Sep 20 18:13:35 2012
@@ -50,16 +50,6 @@
 
 @implementation WOBrowser
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_c
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOForm.m.orig	Wed Sep 19 18:39:08 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOForm.m	Thu Sep 20 18:55:04 2012
@@ -31,10 +31,6 @@
 
 static int debugTakeValues = -1;
 
-+ (int)version {
-  return 5;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_c
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOFrame.m.orig	Wed Sep 19 18:37:46 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOFrame.m	Thu Sep 20 18:54:08 2012
@@ -88,10 +88,6 @@
 
 @implementation WOFrame
 
-+ (int)version {
-  return 1;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOHTMLDynamicElement.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOHTMLDynamicElement.m	Thu Sep 20 18:13:56 2012
@@ -27,17 +27,9 @@
 
 static BOOL debugActionExecute = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
   NSUserDefaults *ud;
     
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   ud = [NSUserDefaults standardUserDefaults];
   debugActionExecute = [ud boolForKey:@"WODebugActions"];
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOHyperlink.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOHyperlink.m	Thu Sep 20 18:14:24 2012
@@ -65,15 +65,6 @@
 
 @implementation WOHyperlink
 
-+ (int)version {
-  return [super version] + 2 /* v4 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 + (id)allocWithZone:(NSZone *)zone {
   static Class WOHyperlinkClass = Nil;
   static _WOTemporaryHyperlink *temporaryHyperlink = nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOIFrame.m.orig	Wed Sep 19 18:39:44 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOIFrame.m	Thu Sep 20 18:55:47 2012
@@ -90,10 +90,6 @@
 
 @implementation WOIFrame
 
-+ (int)version {
-  return 1;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOImageButton.m.orig	Wed Sep 19 18:38:30 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOImageButton.m	Thu Sep 20 18:54:48 2012
@@ -56,10 +56,6 @@
 
 @implementation WOImageButton
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOInput.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOInput.m	Thu Sep 20 18:14:50 2012
@@ -28,17 +28,9 @@
 
 static BOOL takeValueDebugOn = YES;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   if ((takeValueDebugOn = [ud boolForKey:@"WODebugTakeValues"]))
     NSLog(@"WOInput: WODebugTakeValues on.");
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOPopUpButton.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOPopUpButton.m	Thu Sep 20 18:15:15 2012
@@ -68,15 +68,7 @@ static Class NSDateClass = Nil;
 static NSNumber *yesNum = nil;
 static BOOL debugPopUp = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   if (yesNum == nil) yesNum = [[NSNumber numberWithBool:YES] retain];
 }
 
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WORepetition.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WORepetition.m	Thu Sep 20 18:15:37 2012
@@ -137,14 +137,7 @@ static inline Class _classForConfig(NSDictionary *_con
 
 @implementation WORepetition
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   if (debugTakeValues == -1) {
     debugTakeValues = 
       [[NSUserDefaults standardUserDefaults] boolForKey:@"WODebugTakeValues"]
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOString.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOString.m	Thu Sep 20 18:15:55 2012
@@ -88,15 +88,6 @@
 
 @implementation WOString
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 + (id)allocWithZone:(NSZone *)zone {
   static Class WOStringClass = Nil;
   static _WOTemporaryString *temporaryString = nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOSubmitButton.m.orig	Wed Sep 19 18:40:22 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOSubmitButton.m	Thu Sep 20 18:55:13 2012
@@ -46,9 +46,6 @@
 
 static BOOL WOSubmitButtonEnableValueSync = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m	Thu Sep 20 18:16:14 2012
@@ -97,13 +97,7 @@ static Class NSURLClass = Nil;
 
 @implementation _WOComplexHyperlink
 
-+ (int)version {
-  return [super version] /* v4 */;
-}
 + (void)initialize {
-  NSAssert2([super version] == 4,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   if (NSURLClass == Nil)
     NSURLClass = [NSURL class];
 }
@@ -407,7 +401,7 @@ static BOOL debugStaticLinks = NO;
   if (hrefValue == nil)
     return NO;
   
-  if ((*(Class *)hrefValue == NSURLClass) ||
+  if ([hrefValue isMemberOfClass:NSURLClass] ||
       [hrefValue isKindOfClass:NSURLClass]) {
     s = [hrefValue stringValueRelativeToURL:base];
   }
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/_WOSimpleActionHyperlink.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/_WOSimpleActionHyperlink.m	Thu Sep 20 18:16:31 2012
@@ -49,15 +49,6 @@
 
 @implementation _WOSimpleActionHyperlink
 
-+ (int)version {
-  return [super version] + 0 /* v4 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 4,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   hyperlinkInfo:(WOHyperlinkInfo *)_info
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/NGObjWeb/NGHttp/NGHttpBodyParser.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/NGHttp/NGHttpBodyParser.m	Thu Sep 20 18:20:02 2012
@@ -59,15 +59,6 @@
 
 @implementation NGHttpMultipartFormDataBodyParser
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (BOOL)parseImmediatlyWithDelegate:(id)_delegate
   multipart:(id<NGMimePart>)_part data:(NSData *)_data 
 {
$OpenBSD$
--- sope-appserver/NGObjWeb/NGHttp/NGHttpMessageParser.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/NGHttp/NGHttpMessageParser.m	Thu Sep 20 18:20:37 2012
@@ -47,10 +47,6 @@ static inline void NGAddChar(NSMutableData *_data, int
 
 @implementation NGHttpMessageParser
 
-+ (int)version {
-  return [super version] + 0 /* v3 */;
-}
-
 static NGMimeType           *wwwFormUrlEncoded = nil;
 static NGMimeType           *multipartFormData = nil;
 static id<NGMimeBodyParser> wwwFormUrlParser   = nil;
@@ -61,10 +57,6 @@ static id<NGMimeBodyParser> multipartFormDataParser = 
   if (!isInitialized) {
     isInitialized = YES;
 
-    NSAssert2([super version] == 3,
-	      @"invalid superclass (%@) version %i !",
-	      NSStringFromClass([self superclass]), [super version]);
-    
     wwwFormUrlEncoded = 
       [[NGMimeType mimeType:@"application/x-www-form-urlencoded"] retain];
     multipartFormData = [[NGMimeType mimeType:@"multipart/form-data"] retain];
$OpenBSD$
--- sope-appserver/NGObjWeb/OWResourceManager.m.orig	Wed Sep 19 18:42:07 2012
+++ sope-appserver/NGObjWeb/OWResourceManager.m	Thu Sep 20 18:56:15 2012
@@ -84,10 +84,6 @@
 
 @implementation OWResourceManager
 
-+ (int)version {
-  return 4;
-}
-
 static NSFileManager *fm                = nil;
 static Class    UrlClass                = Nil;
 static NSString *resourcePrefix         = @"";
$OpenBSD$
--- sope-appserver/NGObjWeb/OWViewRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/OWViewRequestHandler.m	Thu Sep 20 18:20:58 2012
@@ -42,14 +42,7 @@ static BOOL perflog = NO;
 
 @implementation OWViewRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   perflog = [[NSUserDefaults standardUserDefaults]
                              boolForKey:@"OWViewRequestHandlerProfile"];
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoComponent.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoComponent.m	Thu Sep 20 18:21:40 2012
@@ -28,19 +28,6 @@
 
 @implementation SoComponent
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  static BOOL didInit = NO;
-  
-  if (didInit) return;
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  didInit = YES;
-}
-
 - (void)dealloc {
   [self->soResourceManager release];
   [self->soTemplate        release];
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoControlPanel.m.orig	Wed Sep 19 18:44:17 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoControlPanel.m	Thu Sep 20 18:56:44 2012
@@ -29,10 +29,6 @@
 
 @implementation SoControlPanel
 
-+ (int)version {
-  return 1;
-}
-
 - (id)handleQueryWithUnboundKey:(NSString *)_key {
   return [self lookupName:_key 
 	       inContext:[[WOApplication application] context]
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoCookieAuthenticator.m.orig	Wed Sep 19 18:43:46 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoCookieAuthenticator.m	Thu Sep 20 18:54:26 2012
@@ -45,10 +45,6 @@
 
 static NSString *prefix = @"0xHIGHFLYx";
 
-+ (int)version {
-  return 1;
-}
-
 /* HTTP basic authentication */
 
 - (NSString *)cookieNameInContext:(WOContext *)_ctx {
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoHTTPAuthenticator.m.orig	Wed Sep 19 18:42:40 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoHTTPAuthenticator.m	Thu Sep 20 18:56:33 2012
@@ -39,10 +39,6 @@
 
 @implementation SoHTTPAuthenticator
 
-+ (int)version {
-  return 1;
-}
-
 /* HTTP basic authentication */
 
 - (NSString *)authRealm {
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoLookupAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoLookupAssociation.m	Thu Sep 20 18:21:10 2012
@@ -26,15 +26,6 @@
 
 @implementation SoLookupAssociation
 
-+ (int)version {
-  return [super version] /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithTraversalPath:(NSArray *)_tp acquire:(BOOL)_ac {
   if ((self = [super init])) {
     self->traversalPath = [_tp copy];
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoObjectRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoObjectRequestHandler.m	Thu Sep 20 18:22:17 2012
@@ -59,20 +59,13 @@ static NSString *rapidTurnAroundPath = nil;
 
 static NSString *redirectURISafetySuffix = nil;
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
 + (void)initialize {
   static BOOL     didInit = NO;
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
 
   if (didInit) return;
-
   didInit = YES;
-  NSAssert2([super version] == 2,
-	    @"invalid superclass (%@) version %i !",
-	    NSStringFromClass([self superclass]), [super version]);
 
   lm          = [NGLoggerManager defaultLoggerManager];
   logger      = [lm loggerForClass:self];
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoSubContext.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoSubContext.m	Thu Sep 20 18:21:56 2012
@@ -29,15 +29,6 @@
 
 @implementation SoSubContext
 
-+ (int)version {
-  return [super version] + 0 /* v8 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 8,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithParentContext:(WOContext *)_parent {
   if ((self = [super init])) {
     self->parentContext = [_parent retain];
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOTemplateBuilder.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Templates/WOTemplateBuilder.m	Thu Sep 20 18:53:58 2012
@@ -24,10 +24,6 @@
 
 @implementation WOTemplateBuilder
 
-+ (int)version {
-  return 2;
-}
-
 /* building */
 
 - (WOTemplate *)buildTemplateAtURL:(NSURL *)_url {
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOTemplate.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Templates/WOTemplate.m	Thu Sep 20 18:19:03 2012
@@ -24,15 +24,6 @@
 
 @implementation WOTemplate
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithURL:(NSURL *)_url rootElement:(WOElement *)_element {
   if ((self = [super init])) {
     self->url         = [_url     copy];
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOWrapperTemplateBuilder.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Templates/WOWrapperTemplateBuilder.m	Thu Sep 20 18:19:17 2012
@@ -70,15 +70,8 @@ static BOOL logScriptAdditions   = NO;
 static NSStringEncoding parserEncoding;
 static NSDictionary *defaultAssocMap = nil;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   AssocClass = [WOAssociation class];
   StrClass   = [NSString      class];
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOxElemBuilder.m.orig	Wed Sep 19 18:37:18 2012
+++ sope-appserver/NGObjWeb/Templates/WOxElemBuilder.m	Thu Sep 20 18:54:37 2012
@@ -109,9 +109,6 @@ static Class         CompoundElemClass = Nil;
 static NSNumber      *yesNum   = nil;
 static WOAssociation *yesAssoc = nil;
 
-+ (int)version {
-  return 1;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOxTemplateBuilder.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Templates/WOxTemplateBuilder.m	Thu Sep 20 18:19:30 2012
@@ -32,15 +32,7 @@
 static BOOL  profLoading = NO;
 static Class DateClass = Nil;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   if (DateClass == Nil)
     DateClass = [NSDate class];
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/WOAdaptor.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOAdaptor.m	Thu Sep 20 18:57:03 2012
@@ -31,10 +31,6 @@
 
 @implementation WOAdaptor
 
-+ (int)version {
-  return 1;
-}
-
 - (id)initWithName:(NSString *)_name arguments:(NSDictionary *)_args
   application:(WOCoreApplication *)_application
 {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOApplication.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOApplication.m	Thu Sep 20 18:22:33 2012
@@ -68,10 +68,6 @@ static NSString *defaultCompRqHandlerClassName = @"OWV
 static NSString *defaultCompRqHandlerClassName = @"WOComponentRequestHandler";
 #endif
 
-+ (int)version {
-  return [super version] + 5 /* v6 */;
-}
-
 /* old license checks */
 
 - (NSCalendarDate *)appExpireDate {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOChildComponentReference.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOChildComponentReference.m	Thu Sep 20 18:22:50 2012
@@ -35,14 +35,7 @@
 static int profileComponents = -1;
 static Class NSDateClass = Nil;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   if (profileComponents == -1) {
     profileComponents = [[[NSUserDefaults standardUserDefaults]
                                           objectForKey:@"WOProfileComponents"]
$OpenBSD$
--- sope-appserver/NGObjWeb/WOComponentDefinition.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOComponentDefinition.m	Thu Sep 20 18:57:44 2012
@@ -175,10 +175,6 @@ static BOOL enableClassLessComponents = NO;
 static BOOL enableWOOFiles            = NO;
 static NSArray *woxExtensions = nil;
 
-+ (int)version {
-  return 4;
-}
-
 + (void)initialize {
   static BOOL isInitialized = NO;
   NSUserDefaults *ud;
@@ -270,7 +266,7 @@ static NSArray *woxExtensions = nil;
 - (Class)componentClass {
   if (self->componentClass == Nil)
     self->componentClass = NSClassFromString(self->name);
-  
+NSLog(@"WOComponentDefinition: componentClass: %@", self->name);  
   if (self->componentClass != Nil)
     return self->componentClass;
 
$OpenBSD$
--- sope-appserver/NGObjWeb/WOComponentFault.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOComponentFault.m	Thu Sep 20 18:57:20 2012
@@ -28,10 +28,6 @@
 
 @implementation WOComponentFault
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithResourceManager:(WOResourceManager *)_rm
   pageName:(NSString *)_name
   languages:(NSArray *)_langs
@@ -95,9 +91,9 @@
   WOComponent *c;
   WOResourceManager *rm;
   
-#if DEBUG && 0
+//#if DEBUG && 0
   [self logWithFormat:@"resolving fault for component %@", self->pageName];
-#endif
+//#endif
 
   if ((rm = self->resourceManager))
     ;
@@ -107,8 +103,8 @@
     rm = [[WOApplication application] resourceManager];
   
   c = [rm pageWithName:self->pageName languages:self->languages];
-  //[self logWithFormat:@"  rm:   %@", rm];
-  //[self logWithFormat:@"  c:    %@", c];
+  [self logWithFormat:@"  rm:   %@", rm];
+  [self logWithFormat:@"  c:    %@", c];
   
   [c setBindings:self->bindings];
   [c setParent:_parent];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOComponentRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOComponentRequestHandler.m	Thu Sep 20 18:23:20 2012
@@ -40,15 +40,6 @@
 
 @implementation WOComponentRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (WOResponse *)restoreSessionWithID:(NSString *)_sid
   inContext:(WOContext *)_ctx
 {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOComponent.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOComponent.m	Thu Sep 20 18:23:08 2012
@@ -67,10 +67,6 @@ static BOOL  abortOnAwakeComponentInCtxDealloc = NO;
 static BOOL  abortOnMissingCtx                 = NO;
 static BOOL  wakeupPageOnCreation              = NO;
 
-+ (int)version {
-  // TODO: is really v4 for baseURL/cycleContext ivar changes
-  return [super version] + 0 /* v2 */;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
@@ -78,10 +74,6 @@ static BOOL  wakeupPageOnCreation              = NO;
 
   if (didInit) return;
   didInit = YES;
-  
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
   ud = [NSUserDefaults standardUserDefaults];
   lm = [NGLoggerManager defaultLoggerManager];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOContext.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOContext.m	Thu Sep 20 18:54:16 2012
@@ -49,10 +49,6 @@ static Class WOAppClass = Nil;
 
 @implementation WOContext
 
-+ (int)version {
-  return 9;
-}
-
 static Class    WOContextClass       = Nil;
 static Class    MutableStrClass      = Nil;
 static int      contextCount         = 0;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOCoreApplication.m.orig	Wed Sep 19 18:34:58 2012
+++ sope-appserver/NGObjWeb/WOCoreApplication.m	Thu Sep 20 18:53:18 2012
@@ -76,10 +76,6 @@ static Class    NSDateClass      = Nil;
 static NGLogger *logger          = nil;
 static NGLogger *perfLogger      = nil;
 
-+ (int)version {
-  return 1;
-}
-
 NGObjWeb_DECLARE id WOApp = nil;
 static NSMutableArray *activeApps = nil; // THREAD
 
$OpenBSD$
--- sope-appserver/NGObjWeb/WODirectActionRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WODirectActionRequestHandler.m	Thu Sep 20 18:23:32 2012
@@ -43,15 +43,8 @@ static Class NSDateClass = Nil;
 
 @implementation WODirectActionRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
   NSDateClass = [NSDate class];
   perflog = [ud boolForKey:@"WOProfileDirectActionRequestHandler"];
$OpenBSD$
--- sope-appserver/NGObjWeb/WODirectAction.m.orig	Wed Sep 19 18:41:26 2012
+++ sope-appserver/NGObjWeb/WODirectAction.m	Thu Sep 20 18:55:57 2012
@@ -35,10 +35,6 @@
 
 @implementation WODirectAction
 
-+ (int)version {
-  return 4;
-}
-
 - (id)initWithRequest:(WORequest *)_request {
   if ((self = [super init]) != nil) {
   }
$OpenBSD$
--- sope-appserver/NGObjWeb/WODynamicElement.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WODynamicElement.m	Thu Sep 20 18:23:51 2012
@@ -39,19 +39,11 @@ typedef struct _WOExtraAttrStruct  {
 
 @implementation WODynamicElement
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 static Class FormClass        = Nil;
 static Class FormElementClass = Nil;
 
 + (void)initialize {
   static BOOL isInitialized = NO;
-  
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   if (!isInitialized) {
     isInitialized = YES;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOElement.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOElement.m	Thu Sep 20 18:57:10 2012
@@ -26,10 +26,6 @@
 
 @implementation WOElement
 
-+ (int)version {
-  return 2;
-}
-
 static id numStrings[100];
 
 + (void)initialize {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOFileSessionStore.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOFileSessionStore.m	Thu Sep 20 18:24:06 2012
@@ -55,15 +55,6 @@
 
 static BOOL logExpire = YES;
 
-+ (int)version {
-  return [super version] + 0;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithSessionPath:(NSString *)_path {
   NSFileManager *fm;
   BOOL isDir;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOHTTPConnection.m.orig	Wed Sep 19 18:35:39 2012
+++ sope-appserver/NGObjWeb/WOHTTPConnection.m	Thu Sep 20 18:53:29 2012
@@ -66,10 +66,6 @@ static NSArray  *noProxy     = nil;
 static BOOL doDebug   = NO;
 static BOOL logStream = NO;
 
-+ (int)version {
-  return 3;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   static BOOL didInit = NO;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpAdaptor.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpAdaptor.m	Thu Sep 20 18:24:21 2012
@@ -79,9 +79,6 @@ static BOOL     debugOn                      = NO;
   return perfLogger != nil ? YES : NO;
 }
 
-+ (int)version {
-  return [super version] + 1 /* v2 */;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
@@ -89,10 +86,6 @@ static BOOL     debugOn                      = NO;
 
   if (didInit) return;
   didInit = YES;
-
-  NSAssert2([super version] == 1,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
   ud = [NSUserDefaults standardUserDefaults];
   lm = [NGLoggerManager defaultLoggerManager];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpTransaction.m.orig	Wed Sep 19 18:45:46 2012
+++ sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpTransaction.m	Thu Sep 20 18:57:58 2012
@@ -100,9 +100,6 @@ static NGLogger *debugLogger       = nil;
 static NGLogger *perfLogger        = nil;
 static NGLogger *transActionLogger = nil;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOMailDelivery.m.orig	Wed Sep 19 18:40:49 2012
+++ sope-appserver/NGObjWeb/WOMailDelivery.m	Thu Sep 20 18:55:22 2012
@@ -26,10 +26,6 @@
 
 @implementation WOMailDelivery
 
-+ (int)version {
-  return 2;
-}
-
 WOMailDelivery *sharedInstance = nil;
 
 + (id)sharedInstance {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOMessage.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOMessage.m	Thu Sep 20 18:56:55 2012
@@ -48,7 +48,7 @@ static WOMessageProfileInfo profiletot = { 0, 0, 0, 0,
 
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  
+   
   if (NSStringClass == Nil)
     NSStringClass = [NSString class];
   
@@ -83,10 +83,6 @@ static __inline__ NSMutableData *_checkBody(WOMessage 
       [self->content methodForSelector:@selector(appendBytes:length:)];
   }
   return self->content;
-}
-
-+ (int)version {
-  return 5;
 }
 
 + (void)setDefaultEncoding:(NSStringEncoding)_encoding {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOPageRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOPageRequestHandler.m	Thu Sep 20 18:24:39 2012
@@ -50,14 +50,8 @@ static BOOL  debugOn             = NO;
 
 @implementation WOPageRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
 + (void)initialize {
   NSUserDefaults *ud;
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
   NSDateClass = [NSDate class];
   ud = [NSUserDefaults standardUserDefaults];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOProxyRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOProxyRequestHandler.m	Thu Sep 20 18:24:51 2012
@@ -28,15 +28,6 @@
 
 @implementation WOProxyRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithHost:(NSString *)_hostName onPort:(unsigned int)_port {
   if ((self = [super init])) {
     self->client = 
$OpenBSD$
--- sope-appserver/NGObjWeb/WORequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WORequestHandler.m	Thu Sep 20 18:56:06 2012
@@ -51,9 +51,6 @@ static Class    NSDateClass        = Nil;
 static NGLogger *logger            = nil;
 static NGLogger *perfLogger        = nil;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
@@ -62,7 +59,6 @@ static NGLogger *perfLogger        = nil;
   if (didInit)
     return;
   didInit = YES;
-
   NSDateClass = [NSDate class];
   
   lm         = [NGLoggerManager defaultLoggerManager];
$OpenBSD$
--- sope-appserver/NGObjWeb/WORequest.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WORequest.m	Thu Sep 20 18:25:03 2012
@@ -55,10 +55,6 @@ NGObjWeb_DECLARE NSString *WONoSelectionString       =
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return [super version] + 2 /* v7 */;
-}
-
 + (void)initialize {
   static BOOL isInitialized = NO;
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
@@ -67,10 +63,6 @@ static BOOL debugOn = NO;
 
   if (isInitialized) return;
   isInitialized = YES;
-  
-  NSAssert2([super version] == 5,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   debugOn = [WOApplication isDebuggingEnabled];
     
$OpenBSD$
--- sope-appserver/NGObjWeb/WOResourceManager.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOResourceManager.m	Thu Sep 20 18:53:06 2012
@@ -77,10 +77,6 @@
 
 @implementation WOResourceManager
 
-+ (int)version {
-  return 4;
-}
-
 static Class    UrlClass             = Nil;
 static NSString *resourcePrefix      = @"";
 static NSString *rapidTurnAroundPath = nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOResourceRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOResourceRequestHandler.m	Thu Sep 20 18:25:15 2012
@@ -40,15 +40,6 @@
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (WOResponse *)_handleWebServerResourcesRequest:(WORequest *)_request {
   WOApplication *app;
   NSArray       *handlerPath = nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOResponse.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOResponse.m	Thu Sep 20 18:25:28 2012
@@ -34,18 +34,12 @@ static unsigned int  OWMinimumZipSize  = 1024;
 static BOOL          dontZip  = NO;
 static BOOL          debugZip = NO;
 
-+ (int)version {
-  return [super version] + 1 /* v6 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   static BOOL didInit = NO;
   if (didInit) return;
   didInit = YES;
-  NSAssert2([super version] == 5,
-	    @"invalid superclass (%@) version %i !",
-	    NSStringFromClass([self superclass]), [super version]);
-  
+
   dontZip  = [ud boolForKey:@"WODontZipResponse"];
   debugZip = [ud boolForKey:@"WODebugZipResponse"];
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/WOServerSessionStore.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOServerSessionStore.m	Thu Sep 20 18:25:41 2012
@@ -60,15 +60,6 @@
 
 static BOOL logExpiredSessions = NO;
 
-+ (int)version {
-  return [super version] + 0;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)init {
   if ((self = [super init])) {
     self->idToSession = NSCreateMapTable(NSObjectMapKeyCallBacks,
$OpenBSD$
--- sope-appserver/NGObjWeb/WOSessionStore.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOSessionStore.m	Thu Sep 20 18:57:35 2012
@@ -33,10 +33,6 @@
 
 @implementation WOSessionStore
 
-+ (int)version {
-  return 2;
-}
-
 + (WOSessionStore *)serverSessionStore {
   return
     [[[NSClassFromString(@"WOServerSessionStore") alloc] init] autorelease];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOSession.m.orig	Wed Sep 19 18:36:09 2012
+++ sope-appserver/NGObjWeb/WOSession.m	Thu Sep 20 18:53:48 2012
@@ -60,10 +60,6 @@ NGObjWeb_DECLARE
 
 @implementation WOSession
 
-+ (int)version {
-  return 5;
-}
-
 static int   profileComponents = -1;
 static int   logPageCache      = -1;
 static Class NSDateClass = Nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOSimpleHTTPParser.m.orig	Wed Sep 19 18:36:41 2012
+++ sope-appserver/NGObjWeb/WOSimpleHTTPParser.m	Thu Sep 20 18:53:36 2012
@@ -35,9 +35,6 @@ static BOOL  heavyDebugOn   = NO;
 static int   fileIOBoundary = 0;
 static int   maxUploadSize  = 0;
 
-+ (int)version {
-  return 1;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-appserver/NGObjWeb/WOStatisticsStore.m.orig	Wed Sep 19 18:45:14 2012
+++ sope-appserver/NGObjWeb/WOStatisticsStore.m	Thu Sep 20 18:55:32 2012
@@ -59,10 +59,6 @@ static Class NSNumberClass    = Nil;
 static Class NSStringClass    = Nil;
 static BOOL  runMultithreaded = NO;
 
-+ (int)version {
-  return 1;
-}
-
 + (void)initialize {
   NSNumberClass = [NSNumber class];
   NSStringClass = [NSString class];
$OpenBSD$
--- sope-appserver/WEExtensions/WECalendarField.m.orig	Wed Sep 19 19:03:19 2012
+++ sope-appserver/WEExtensions/WECalendarField.m	Thu Sep 20 18:26:20 2012
@@ -27,14 +27,7 @@ static Class StrClass = Nil;
 
 @implementation WECalendarField
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   StrClass = [NSString class];
 }
 
$OpenBSD$
--- sope-appserver/WEExtensions/WEDragContainer.m.orig	Wed Sep 19 18:54:19 2012
+++ sope-appserver/WEExtensions/WEDragContainer.m	Thu Sep 20 18:26:32 2012
@@ -58,10 +58,6 @@
 
 static BOOL debugTakeValues = NO;
 
-+ (int)version {
-  return 0 + [super version];
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/WEExtensions/WEDropContainer.m.orig	Wed Sep 19 18:49:20 2012
+++ sope-appserver/WEExtensions/WEDropContainer.m	Thu Sep 20 18:26:44 2012
@@ -71,10 +71,6 @@
 
 @implementation WEDropContainer
 
-+ (int)version {
-  return 0 + [super version];
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WEExtensions/WEEpozEditor.m.orig	Wed Sep 19 18:50:56 2012
+++ sope-appserver/WEExtensions/WEEpozEditor.m	Thu Sep 20 18:26:55 2012
@@ -52,15 +52,6 @@
 
 @implementation WEEpozEditor
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_root {
$OpenBSD$
--- sope-appserver/WEExtensions/WEPageLink.m.orig	Wed Sep 19 18:52:09 2012
+++ sope-appserver/WEExtensions/WEPageLink.m	Thu Sep 20 18:27:08 2012
@@ -54,15 +54,6 @@
 
 @implementation WEPageLink
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/WEExtensions/WEPageView.m.orig	Wed Sep 19 18:58:04 2012
+++ sope-appserver/WEExtensions/WEPageView.m	Thu Sep 20 18:27:25 2012
@@ -117,10 +117,6 @@ static NSNumber *YesNumber = nil;
   if (YesNumber == nil) YesNumber = [[NSNumber numberWithBool:YES] retain];
 }
 
-+ (int)version {
-  return [super version] + 0;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
@@ -634,10 +630,6 @@ static inline NSString *WEPageLabelForKey(NSString *_k
 @end /* WEPageView */
 
 @implementation WEPageItem
-
-+ (int)version {
-  return [super version] + 0;
-}
 
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
$OpenBSD$
--- sope-appserver/WEExtensions/WEResourceManager.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-appserver/WEExtensions/WEResourceManager.m	Thu Sep 20 18:27:44 2012
@@ -162,19 +162,12 @@ static NSString *themesDirName = @"Themes";
   return ma;
 }
 
-+ (int)version {
-  return [super version] + 0 /* v4 */;
-}
 + (void)initialize {
   static BOOL isInitialized = NO;
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   if (isInitialized) return;
   isInitialized = YES;
   
-  NSAssert2([super version] == 4,
-	    @"invalid superclass (%@) version %i !",
-	    NSStringFromClass([self superclass]), [super version]);
-
   null = [[NSNull null] retain];
   
   if ((debugOn = [ud boolForKey:@"WEResourceManagerDebugEnabled"]))
$OpenBSD$
--- sope-appserver/WEExtensions/WETabItem.m.orig	Wed Sep 19 18:53:03 2012
+++ sope-appserver/WEExtensions/WETabItem.m	Thu Sep 20 18:27:57 2012
@@ -38,9 +38,6 @@ extern NSString *WETabView_COLLECT;
 
 static Class StrClass = Nil;
 
-+ (int)version {
-  return [super version] + 0;
-}
 + (void)initialize {
   StrClass = [NSString class];
 }
$OpenBSD$
--- sope-appserver/WEExtensions/WETabView.m.orig	Wed Sep 19 18:55:46 2012
+++ sope-appserver/WEExtensions/WETabView.m	Thu Sep 20 18:28:49 2012
@@ -45,10 +45,6 @@ static NSNumber *YesNumber;
     YesNumber = [[NSNumber numberWithBool:YES] retain];
 }
 
-+ (int)version {
-  return [super version] + 0;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/WEExtensions/WETableCalcMatrix.m.orig	Wed Sep 19 18:48:02 2012
+++ sope-appserver/WEExtensions/WETableCalcMatrix.m	Thu Sep 20 18:52:57 2012
@@ -461,10 +461,6 @@ static NSNull *null = nil;
 
 @implementation WETableCalcMatrix
 
-+ (int)version {
-  return 0;
-}
-
 static inline MatrixEntry *entryAt(WETableCalcMatrix *self, unsigned x, 
 				   unsigned y) {
   return self->matrix +
$OpenBSD$
--- sope-appserver/WEExtensions/WETableView/WETableData.m.orig	Wed Sep 19 19:00:20 2012
+++ sope-appserver/WEExtensions/WETableView/WETableData.m	Thu Sep 20 18:28:14 2012
@@ -57,15 +57,6 @@
 
 @implementation WETableData
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)_initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_c
$OpenBSD$
--- sope-appserver/WEExtensions/WETableView/WETableView.m.orig	Wed Sep 19 19:01:29 2012
+++ sope-appserver/WEExtensions/WETableView/WETableView.m	Thu Sep 20 18:28:31 2012
@@ -57,14 +57,8 @@ static Class    StrClass   = Nil;
 static BOOL ShowNavigationAlways   = YES;
 static BOOL ShowNavigationInFooter = YES;
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   StrClass = [NSString class];
   if (YesNumber == nil) YesNumber = [[NSNumber numberWithBool:YES] retain];
$OpenBSD$
--- sope-appserver/WOExtensions/JSAlertPanel.m.orig	Wed Sep 19 19:04:46 2012
+++ sope-appserver/WOExtensions/JSAlertPanel.m	Thu Sep 20 18:29:16 2012
@@ -44,15 +44,6 @@
 
 @implementation JSAlertPanel
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WOExtensions/JSConfirmPanel.m.orig	Wed Sep 19 19:05:53 2012
+++ sope-appserver/WOExtensions/JSConfirmPanel.m	Thu Sep 20 18:29:26 2012
@@ -45,15 +45,6 @@
 
 @implementation JSConfirmPanel
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WOExtensions/JSImageFlyover.m.orig	Wed Sep 19 19:07:07 2012
+++ sope-appserver/WOExtensions/JSImageFlyover.m	Thu Sep 20 18:29:40 2012
@@ -48,15 +48,6 @@
 
 @implementation JSImageFlyover
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-	    @"invalid superclass (%@) version %i !",
-	    NSStringFromClass([self superclass]), [super version]);
-}
-
 - (NSDictionary *)extractQueryParameters: (NSDictionary *)_set {
   NSMutableDictionary *paras = nil;
   NSMutableArray      *paraKeys = nil;
$OpenBSD$
--- sope-appserver/WOExtensions/JSModalWindow.m.orig	Wed Sep 19 19:08:08 2012
+++ sope-appserver/WOExtensions/JSModalWindow.m	Thu Sep 20 18:29:52 2012
@@ -54,15 +54,6 @@
 
 @implementation JSModalWindow
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WOExtensions/JSTextFlyover.m.orig	Wed Sep 19 19:10:24 2012
+++ sope-appserver/WOExtensions/JSTextFlyover.m	Thu Sep 20 18:30:04 2012
@@ -40,15 +40,6 @@
 
 @implementation JSTextFlyover
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WOExtensions/JSValidatedField.m.orig	Wed Sep 19 19:09:22 2012
+++ sope-appserver/WOExtensions/JSValidatedField.m	Thu Sep 20 18:30:17 2012
@@ -42,15 +42,6 @@
 
 @implementation JSValidatedField
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-core/EOControl/EODataSource.m.orig	Sat Sep 15 10:53:53 2012
+++ sope-core/EOControl/EODataSource.m	Thu Sep 20 18:52:15 2012
@@ -25,10 +25,6 @@
 
 @implementation EODataSource
 
-+ (int)version {
-  return 1;
-}
-
 /* reflection */
 
 - (EOClassDescription *)classDescriptionForObjects {
$OpenBSD$
--- sope-core/NGExtensions/NGBundleManager.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-core/NGExtensions/NGBundleManager.m	Thu Sep 13 17:49:21 2012
@@ -615,7 +615,7 @@ static NSString *NGEnvVarPathSeparator = @":";
 
 // dependencies
 
-+ (NSInteger)version {
++ (int)version {
   return 2;
 }
 
$OpenBSD$
--- sope-core/NGExtensions/NGCustomFileManager.m.orig	Sat Sep 15 11:09:45 2012
+++ sope-core/NGExtensions/NGCustomFileManager.m	Thu Sep 20 18:31:08 2012
@@ -39,15 +39,6 @@ typedef struct {
 
 @implementation NGCustomFileManager
 
-+ (int)version {
-  return [super version] + 0 /* v0 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 0,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 /* customization */
 
 - (NSString *)makeAbsolutePath:(NSString *)_path {
$OpenBSD$
--- sope-core/NGExtensions/NGFileManager.m.orig	Sat Sep 15 11:11:47 2012
+++ sope-core/NGExtensions/NGFileManager.m	Thu Sep 20 18:52:02 2012
@@ -28,10 +28,6 @@
 
 static BOOL logPathOps = NO;
 
-+ (int)version {
-  return 0;
-}
-
 - (id)init {
   if ((self = [super init])) {
     self->cwd = @"/";
$OpenBSD$
--- sope-core/NGStreams/NGByteBuffer.m.orig	Sat Sep 15 10:51:02 2012
+++ sope-core/NGStreams/NGByteBuffer.m	Thu Sep 20 18:31:30 2012
@@ -44,10 +44,6 @@ static Class DataStreamClass = Nil;
   DataStreamClass   = NSClassFromString(@"NGDataStream");
 }
 
-+ (int)version {
-  return [super version] + 1;
-}
-
 + (id)byteBufferWithSource:(id<NGStream>)_source la:(unsigned)_la {
   if (_source            == nil)            return nil;
   if (*(Class *)_source == DataStreamClass) return _source;
$OpenBSD$
--- sope-core/NGStreams/NGCTextStream.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-core/NGStreams/NGCTextStream.m	Thu Sep 20 18:31:44 2012
@@ -42,10 +42,6 @@ NGStreams_DECLARE id<NGExtendedTextOutputStream> NGTex
 
 @implementation NGCTextStream
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 // stdio
 
 NGStreams_DECLARE void NGInitTextStdio(void) {
@@ -81,9 +77,6 @@ static void _flushAtExit(void) {
 + (void)initialize {
   BOOL isInitialized = NO;
   if (!isInitialized) {
-    NSAssert2([super version] == 2,
-              @"invalid superclass (%@) version %i !",
-              NSStringFromClass([self superclass]), [super version]);
     isInitialized = YES;
 
     atexit(_flushAtExit);
$OpenBSD$
--- sope-core/NGStreams/NGDataStream.m.orig	Sat Sep 15 10:48:53 2012
+++ sope-core/NGStreams/NGDataStream.m	Thu Sep 20 18:31:20 2012
@@ -27,10 +27,6 @@
 
 @implementation NGDataStream
 
-+ (int)version {
-  return [super version] + 2;
-}
-
 + (id)dataStream {
   return [self streamWithData:[NSMutableData dataWithCapacity:1024]];
 }
$OpenBSD$
--- sope-core/NGStreams/NGInternetSocketDomain.m.orig	Sat Sep 15 11:09:01 2012
+++ sope-core/NGStreams/NGInternetSocketDomain.m	Thu Sep 20 18:52:36 2012
@@ -31,9 +31,6 @@
 
 static NGInternetSocketDomain *domain = nil;
 
-+ (int)version {
-  return 1;
-}
 + (void)initialize {
   if (domain == nil) domain = [[NGInternetSocketDomain alloc] init];
 }
$OpenBSD$
--- sope-core/NGStreams/NGSocket.m.orig	Sat Sep 15 11:06:59 2012
+++ sope-core/NGStreams/NGSocket.m	Thu Sep 20 18:51:51 2012
@@ -64,19 +64,15 @@
 static BOOL    isInitialized = NO;
 static WSADATA wsaData;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   if (!isInitialized) {
     isInitialized = YES;
 
-    if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0)
-      NSLog(@"WARNING: Could not start Windows sockets !");
+  if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0)
+    NSLog(@"WARNING: Could not start Windows sockets !");
 
-    NSLog(@"WinSock version %i.%i.",
-          LOBYTE(wsaData.wVersion), HIBYTE(wsaData.wVersion));
+  NSLog(@"WinSock version %i.%i.",
+        LOBYTE(wsaData.wVersion), HIBYTE(wsaData.wVersion));
   }
 }
 
$OpenBSD$
--- sope-core/NGStreams/NGTextStream.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-core/NGStreams/NGTextStream.m	Thu Sep 20 18:52:27 2012
@@ -24,10 +24,6 @@
 
 @implementation NGTextStream
 
-+ (int)version {
-  return 2;
-}
-
 - (void)dealloc {
   [self->lastException release];
   [super dealloc];
$OpenBSD$
--- sope-gdl1/GDLAccess/EOAdaptorDataSource.m.orig	Sat Sep 15 10:47:25 2012
+++ sope-gdl1/GDLAccess/EOAdaptorDataSource.m	Thu Sep 20 18:32:10 2012
@@ -98,15 +98,8 @@ static NSNotificationCenter *getNC(void ) {
 }
 
 + (void)initialize {
-  NSAssert2([super version] == 1,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   null = [[EONull null] retain];
   NSCalendarDateClass = [NSCalendarDate class];
-}
-+ (int)version {
-  return [super version] + 1; /* v2 */
 }
 
 - (id)initWithAdaptorName:(NSString *)_adName
$OpenBSD$
--- sope-gdl1/GDLAccess/EOModel.m.orig	Wed Sep 19 18:30:05 2012
+++ sope-gdl1/GDLAccess/EOModel.m	Thu Sep 20 18:51:42 2012
@@ -402,10 +402,6 @@ void EOModel_linkCategories(void) {
   return ents;
 }
 
-+ (int)version {
-  return 1;
-}
-
 /* description */
 
 - (NSString *)description {
$OpenBSD$
--- sope-gdl1/GDLAccess/EOSQLExpression.m.orig	Wed Sep 19 18:31:49 2012
+++ sope-gdl1/GDLAccess/EOSQLExpression.m	Thu Sep 20 18:51:33 2012
@@ -154,10 +154,6 @@ NSString *EOBindVariableValueKey       = @"value";
 
 @implementation EOSQLExpression
 
-+ (int)version {
-  return 1;
-}
-
 + (void)initialize {
   if (null == nil) null = [[NSNull null] retain];
 }
$OpenBSD$
--- sope-ldap/NGLdap/NGLdapFileManager.m.orig	Sat Sep 15 10:45:48 2012
+++ sope-ldap/NGLdap/NGLdapFileManager.m	Thu Sep 20 18:32:23 2012
@@ -30,15 +30,6 @@
 
 @implementation NGLdapFileManager
 
-+ (int)version {
-  return [super version] + 0 /* v0 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 0,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 static NSString *LDAPObjectClassKey = @"objectclass";
 static NSArray  *objectClassAttrs = nil;
 static NSArray  *fileInfoAttrs    = nil;
$OpenBSD$
--- sope-mime/NGImap4/NGImap4Client.m.orig	Wed Sep 19 18:08:29 2012
+++ sope-mime/NGImap4/NGImap4Client.m	Thu Sep 20 18:44:31 2012
@@ -131,9 +131,6 @@ static NSMutableDictionary *namespaces;
   return self->useTLS;
 }
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   static BOOL didInit = NO;
$OpenBSD$
--- sope-mime/NGImap4/NGImap4FileManager.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-mime/NGImap4/NGImap4FileManager.m	Thu Sep 20 18:32:49 2012
@@ -44,15 +44,8 @@
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v0 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  
-  NSAssert2([super version] == 0,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   if ((debugOn = [ud boolForKey:@"NGImap4FileManagerDebugEnabled"]))
     NSLog(@"NGImap4FileManager debugging is enabled.");
$OpenBSD$
--- sope-mime/NGImap4/NGImap4Message.m.orig	Wed Sep 19 18:07:40 2012
+++ sope-mime/NGImap4/NGImap4Message.m	Thu Sep 20 18:44:21 2012
@@ -61,10 +61,6 @@ static NSArray           *rfc822NameArray  = nil;
 static BOOL              debugFlags        = NO;
 static BOOL              ImapDebugEnabled  = NO;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   static BOOL didInit = NO;
$OpenBSD$
--- sope-mime/NGMail/NGMBoxReader.m.orig	Wed Sep 19 18:14:26 2012
+++ sope-mime/NGMail/NGMBoxReader.m	Thu Sep 20 18:46:19 2012
@@ -27,10 +27,6 @@
 
 @implementation NGMBoxReader
 
-+ (int)version {
-  return 2;
-}
-
 static inline int __readByte(NGMBoxReader *self);
 static inline void
 __appendByte(NGMBoxReader *self, NSMutableData *_data, IMP _readBytes, int _c);
$OpenBSD$
--- sope-mime/NGMail/NGMailAddressList.m.orig	Wed Sep 19 18:10:20 2012
+++ sope-mime/NGMail/NGMailAddressList.m	Thu Sep 20 18:45:07 2012
@@ -24,10 +24,6 @@
 
 @implementation NGMailAddressList
 
-+ (int)version {
-  return 2;
-}
-
 + (id)mailAddressListWithAddresses:(NSSet *)_addresses
   groupName:(NSString *)_groupName {
   return [[[NGMailAddressList alloc] initWithAddresses:_addresses
$OpenBSD$
--- sope-mime/NGMail/NGMailAddressParser.m.orig	Wed Sep 19 18:18:20 2012
+++ sope-mime/NGMail/NGMailAddressParser.m	Thu Sep 20 18:46:47 2012
@@ -43,10 +43,6 @@
 static Class    StrClass = Nil;
 static NSNumber *yesNum  = nil;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   if (yesNum == nil) yesNum = [[NSNumber numberWithBool:YES] retain];
   StrClass = [NSString class];
$OpenBSD$
--- sope-mime/NGMail/NGMailAddress.m.orig	Wed Sep 19 18:17:00 2012
+++ sope-mime/NGMail/NGMailAddress.m	Thu Sep 20 18:46:38 2012
@@ -24,10 +24,6 @@
 
 @implementation NGMailAddress
 
-+ (int)version {
-  return 2;
-}
-
 + (id)mailAddressWithAddress:(NSString *)_address
   displayName:(NSString *)_owner
   route:(NSString *)_route
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageBodyGenerator.m	Thu Sep 20 18:34:09 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeMessageBodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 /* encoding data */
 
 - (NSData *)encodeData:(NSData *)_data
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageGenerator.m	Thu Sep 20 18:34:26 2012
@@ -29,16 +29,9 @@
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
 
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   debugOn = [ud boolForKey:@"NGMimeGeneratorDebugEnabled"];
   if (debugOn)
     NSLog(@"WARNING[%@]: NGMimeGeneratorDebugEnabled is enabled!", self);
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageMultipartBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageMultipartBodyGenerator.m	Thu Sep 20 18:34:42 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeMessageMultipartBodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id<NGMimePartGenerator>)multipartBodyGenerator:(NGMimeBodyGenerator *)_gen
   generatorForPart:(id<NGMimePart>)_part 
 {
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageParser.m	Thu Sep 20 18:35:03 2012
@@ -77,13 +77,7 @@ static Class NGMimeMessageParserClass = Nil; 
 
 static Class NSStringClass = Nil;
 
-+ (int)version {
-  return 3;
-}
 + (void)initialize {
-  NSAssert2([super version] == 3,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   if (NSStringClass == Nil)
     NSStringClass = [NSString class];
 }
@@ -121,15 +115,6 @@ static Class NSStringClass = Nil;
 
 
 @implementation NGMimeRfc822BodyParser
-
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
 
 - (id)parseBodyOfPart:(id<NGMimePart>)_part data:(NSData *)_data
   delegate:(id)_d
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageRfc822BodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageRfc822BodyGenerator.m	Thu Sep 20 18:33:41 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeMessageRfc822BodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id<NGMimePartGenerator>)generatorForPart:(id<NGMimePart>)_part {
   id gen;
 
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageTextBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageTextBodyGenerator.m	Thu Sep 20 18:33:08 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeMessageTextBodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (NSData *)encodeData:(NSData *)_data
   forPart:(id<NGMimePart>)_part
   additionalHeaders:(NGMutableHashMap *)_addHeaders
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessage.m.orig	Wed Sep 19 18:13:42 2012
+++ sope-mime/NGMail/NGMimeMessage.m	Thu Sep 20 18:45:53 2012
@@ -27,19 +27,15 @@
 static NGMimeType *defaultTextType = nil;
 static NGMimeType *defaultDataType = nil;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   static BOOL isInitialized = NO;
   if (!isInitialized) {
     isInitialized = YES;
     
-    defaultTextType = 
-      [[NGMimeType mimeType:@"text/plain; charset=us-ascii"] retain];
-    defaultDataType = 
-      [[NGMimeType mimeType:@"application/octet-stream"] retain];
+  defaultTextType = 
+    [[NGMimeType mimeType:@"text/plain; charset=us-ascii"] retain];
+  defaultDataType = 
+    [[NGMimeType mimeType:@"application/octet-stream"] retain];
   }
 }
   
$OpenBSD$
--- sope-mime/NGMail/NGPop3Client.m.orig	Wed Sep 19 18:15:50 2012
+++ sope-mime/NGMail/NGPop3Client.m	Thu Sep 20 18:46:28 2012
@@ -27,10 +27,6 @@
 
 @implementation NGPop3Client
 
-+ (int)version {
-  return 2;
-}
-
 + (id)pop3Client {
   NGActiveSocket *s;
   
$OpenBSD$
--- sope-mime/NGMail/NGPop3Support.m.orig	Wed Sep 19 18:11:22 2012
+++ sope-mime/NGMail/NGPop3Support.m	Thu Sep 20 18:45:39 2012
@@ -25,10 +25,6 @@
 
 @implementation NGPop3Response
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithLine:(NSString *)_line {
   if ((self = [super init])) {
     self->line = [_line copy];
@@ -67,10 +63,6 @@
 
 @implementation NGPop3MessageInfo
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithNumber:(int)_num size:(int)_size client:(NGPop3Client *)_client{
   if ((self = [super init])) {
     self->messageNumber = _num;
@@ -114,10 +106,6 @@
 
 @implementation NGPop3MailDropEnumerator
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithMessageInfoEnumerator:(NSEnumerator *)_infos {
   self->msgInfos = [_infos retain];
   return self;
@@ -148,17 +136,9 @@
 
 @implementation NGPop3Exception
 
-+ (int)version {
-  return 2;
-}
-
 @end /* NGPop3Exception */
 
 @implementation NGPop3StateException
-
-+ (int)version {
-  return 2;
-}
 
 - (id)init {
   return [self initWithClient:nil requiredState:0];
$OpenBSD$
--- sope-mime/NGMail/NGSmtpClient.m.orig	Wed Sep 19 18:08:59 2012
+++ sope-mime/NGMail/NGSmtpClient.m	Thu Sep 20 18:44:42 2012
@@ -106,10 +106,6 @@
 
 @implementation NGSmtpClient
 
-+ (int)version {
-  return 2;
-}
-
 + (id)smtpClient {
   NGActiveSocket *s;
   s = [NGActiveSocket socketInDomain:[NGInternetSocketDomain domain]];
$OpenBSD$
--- sope-mime/NGMail/NGSmtpSupport.m.orig	Wed Sep 19 18:09:38 2012
+++ sope-mime/NGMail/NGSmtpSupport.m	Thu Sep 20 18:44:54 2012
@@ -117,10 +117,6 @@ NSString *NGSmtpDescriptionForReplyCode(NGSmtpReplyCod
 
 @implementation NGSmtpResponse
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithCode:(NGSmtpReplyCode)_code text:(NSString *)_text {
   if ((self = [super init])) {
     self->code = _code;
$OpenBSD$
--- sope-mime/NGMime/NGMimeAddressHeaderFieldGenerator.m.orig	Wed Sep 19 18:25:12 2012
+++ sope-mime/NGMime/NGMimeAddressHeaderFieldGenerator.m	Thu Sep 20 18:48:24 2012
@@ -44,10 +44,6 @@
 
 static int UseLFSeperatedAddressEntries = -1;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
 
$OpenBSD$
--- sope-mime/NGMime/NGMimeBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeBodyGenerator.m	Thu Sep 20 18:47:08 2012
@@ -28,9 +28,6 @@
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-mime/NGMime/NGMimeBodyParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeBodyParser.m	Thu Sep 20 18:36:22 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeBodyParser
 
-+ (int)version {
-  return 2;
-}
-
 - (id)parseBodyOfPart:(id<NGMimePart>)_part
   data:(NSData *)_data
   delegate:(id)_d
@@ -43,15 +39,9 @@
 
 static int UseFoundationStringEncodingForMimeText = -1;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   if (UseFoundationStringEncodingForMimeText == -1) {
     UseFoundationStringEncodingForMimeText =
       [ud boolForKey:@"UseFoundationStringEncodingForMimeText"]?1:0;
$OpenBSD$
--- sope-mime/NGMime/NGMimeBodyPartParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeBodyPartParser.m	Thu Sep 20 18:36:34 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeBodyPartParser
 
-+ (int)version {
-  return 3;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 3,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (NGMimeType *)defaultContentTypeForPart:(id<NGMimePart>)_part {
   return [NGMimeType mimeType:@"text/plain"];
 }
$OpenBSD$
--- sope-mime/NGMime/NGMimeBodyPart.m.orig	Wed Sep 19 18:21:13 2012
+++ sope-mime/NGMime/NGMimeBodyPart.m	Thu Sep 20 18:47:37 2012
@@ -27,10 +27,6 @@
 
 @implementation NGMimeBodyPart
 
-+ (int)version {
-  return 2;
-}
-
 + (id)bodyPartWithHeader:(NGHashMap *)_header {
   return [[[self alloc] initWithHeader:_header] autorelease];
 }
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentDispositionHeaderFieldGenerator.m.orig	Wed Sep 19 18:20:06 2012
+++ sope-mime/NGMime/NGMimeContentDispositionHeaderFieldGenerator.m	Thu Sep 20 18:48:04 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeContentDispositionHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentDispositionHeaderFieldParser.m.orig	Wed Sep 19 18:25:43 2012
+++ sope-mime/NGMime/NGMimeContentDispositionHeaderFieldParser.m	Thu Sep 20 18:50:16 2012
@@ -29,9 +29,6 @@
 static BOOL StripLeadingSpaces = NO;
 static BOOL MimeLogEnabled     = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   StripLeadingSpaces = [self doesStripLeadingSpaces];
   MimeLogEnabled     = [self isMIMELogEnabled];
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentLengthHeaderFieldGenerator.m.orig	Wed Sep 19 18:28:22 2012
+++ sope-mime/NGMime/NGMimeContentLengthHeaderFieldGenerator.m	Thu Sep 20 18:49:33 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeContentLengthHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentLengthHeaderFieldParser.m.orig	Wed Sep 19 18:19:31 2012
+++ sope-mime/NGMime/NGMimeContentLengthHeaderFieldParser.m	Thu Sep 20 18:47:27 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeContentLengthHeaderFieldParser
 
-+ (int)version {
-  return 2;
-}
-
 - (id)parseValue:(id)_data ofHeaderField:(NSString *)_field {
   const char *buf, *ptr;
     
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentTypeHeaderFieldGenerator.m.orig	Wed Sep 19 18:27:50 2012
+++ sope-mime/NGMime/NGMimeContentTypeHeaderFieldGenerator.m	Thu Sep 20 18:48:44 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeContentTypeHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentTypeHeaderFieldParser.m.orig	Wed Sep 19 18:18:48 2012
+++ sope-mime/NGMime/NGMimeContentTypeHeaderFieldParser.m	Thu Sep 20 18:47:18 2012
@@ -29,9 +29,6 @@
 static BOOL StripLeadingSpaces = NO;
 static BOOL MimeLogEnabled     = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   StripLeadingSpaces = [self doesStripLeadingSpaces];
   MimeLogEnabled     = [self isMIMELogEnabled];
$OpenBSD$
--- sope-mime/NGMime/NGMimeExceptions.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeExceptions.m	Thu Sep 20 18:35:26 2012
@@ -24,10 +24,6 @@
 
 @implementation NGMimeException
 
-+ (int)version {
-  return 2;
-}
-
 - (id)init {
   return [self initWithReason:@"a MIME exception occured"];
 }
@@ -35,15 +31,6 @@
 @end /* NGMimeException */
 
 @implementation NGMimeParserException
-
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
 
 - (id)init {
   return [self initWithReason:@"a MIME exception occured during parsing"];
$OpenBSD$
--- sope-mime/NGMime/NGMimeFileData.m.orig	Wed Sep 12 11:32:13 2012
+++ sope-mime/NGMime/NGMimeFileData.m	Wed Sep 12 11:32:30 2012
@@ -119,7 +119,7 @@ static unsigned      tmpmask  = 0600;
   return [[self _data] bytes];
 }
 
-- (unsigned int)length {
+- (NSUInteger)length {
   if (self->length == -1) {
     self->length = [[[[NSFileManager defaultManager]
                                      fileAttributesAtPath:self->path
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFieldGeneratorSet.m.orig	Wed Sep 19 18:27:08 2012
+++ sope-mime/NGMime/NGMimeHeaderFieldGeneratorSet.m	Thu Sep 20 18:50:04 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeHeaderFieldGeneratorSet
 
-+ (int)version {
-  return 2;
-}
-
 static NGMimeHeaderFieldGeneratorSet *rfc822Set = nil;
 
 + (id)headerFieldGenerator {
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFieldGenerator.m.orig	Wed Sep 19 18:17:38 2012
+++ sope-mime/NGMime/NGMimeHeaderFieldGenerator.m	Thu Sep 20 18:46:56 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 + (id)headerFieldGenerator {
   return [[[self alloc] init] autorelease];
 }
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFieldParserSet.m.orig	Wed Sep 19 18:26:07 2012
+++ sope-mime/NGMime/NGMimeHeaderFieldParserSet.m	Thu Sep 20 18:48:35 2012
@@ -28,10 +28,6 @@
 
 @implementation NGMimeHeaderFieldParserSet
 
-+ (int)version {
-  return 2;
-}
-
 static NGMimeHeaderFieldParserSet *rfc822set = nil;
 
 + (id)headerFieldParserSet {
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFieldParser.m.orig	Wed Sep 19 18:20:41 2012
+++ sope-mime/NGMime/NGMimeHeaderFieldParser.m	Thu Sep 20 18:48:55 2012
@@ -45,10 +45,6 @@ static int StripLeadingSpaces = -1;
   return StripLeadingSpaces ? YES : NO;
 }
 
-+ (int)version {
-  return 2;
-}
-
 - (NSString *)removeCommentsFromValue:(NSString *)_rawValue {
   unsigned int len = [_rawValue length];
   unichar      bytes[len + 1];
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFields.m.orig	Wed Sep 19 18:26:41 2012
+++ sope-mime/NGMime/NGMimeHeaderFields.m	Thu Sep 20 18:49:21 2012
@@ -31,10 +31,6 @@ NGMime_DECLARE NSString *NGMimeContentDispositionFormT
 
 static int MimeLogEnabled = -1;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-mime/NGMime/NGMimeMultipartBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeMultipartBodyGenerator.m	Thu Sep 20 18:35:15 2012
@@ -34,16 +34,9 @@ static Class NGMimeFileDataClass   = Nil;
 static Class NGMimeJoinedDataClass = Nil;
 static BOOL  debugOn = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   NGMimeFileDataClass   = [NGMimeFileData class];
   NGMimeJoinedDataClass = [NGMimeJoinedData class];
   
$OpenBSD$
--- sope-mime/NGMime/NGMimeMultipartBodyParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeMultipartBodyParser.m	Thu Sep 20 18:36:06 2012
@@ -29,15 +29,9 @@
 
 static int MimeLogEnabled = -1;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   MimeLogEnabled = [ud boolForKey:@"MimeLogEnabled"] ? 1 : 0;
 }
 
$OpenBSD$
--- sope-mime/NGMime/NGMimeMultipartBody.m.orig	Wed Sep 19 18:21:46 2012
+++ sope-mime/NGMime/NGMimeMultipartBody.m	Thu Sep 20 18:48:14 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeMultipartBody
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithPart:(id<NGMimePart>)_part {
   if ((self = [super init])) {
     self->flags.isParsed = YES;
$OpenBSD$
--- sope-mime/NGMime/NGMimePartGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimePartGenerator.m	Thu Sep 20 18:47:45 2012
@@ -31,9 +31,6 @@
 static NSProcessInfo *Pi = nil;
 static BOOL       debugOn = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-mime/NGMime/NGMimePartParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimePartParser.m	Thu Sep 20 18:49:44 2012
@@ -95,10 +95,6 @@ static Class NSMutableDataClass = NULL;
 
 static NGMimeHeaderNames *HeaderNames = NULL;
 
-+ (int)version {
-  return 3;
-}
-
 static int MimeLogEnabled = -1;
 
 + (void)initialize {
$OpenBSD$
--- sope-mime/NGMime/NGMimeRFC822DateHeaderFieldGenerator.m.orig	Wed Sep 19 18:22:23 2012
+++ sope-mime/NGMime/NGMimeRFC822DateHeaderFieldGenerator.m	Thu Sep 20 18:47:54 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeRFC822DateHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m.orig	Wed Sep 19 18:23:32 2012
+++ sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m	Thu Sep 20 18:49:04 2012
@@ -31,10 +31,6 @@
 static NSTimeZone *gmt = nil;
 static NSTimeZone *met = nil;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   static BOOL didInit = NO;
   if (didInit) return;
$OpenBSD$
--- sope-mime/NGMime/NGMimeRfc822BodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeRfc822BodyGenerator.m	Thu Sep 20 18:35:38 2012
@@ -26,15 +26,6 @@
 
 @implementation NGMimeRfc822BodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id<NGMimePartGenerator>)generatorForPart:(id<NGMimePart>)_part {
   id g;
   
$OpenBSD$
--- sope-mime/NGMime/NGMimeStringHeaderFieldGenerator.m.orig	Wed Sep 19 18:24:25 2012
+++ sope-mime/NGMime/NGMimeStringHeaderFieldGenerator.m	Thu Sep 20 18:49:54 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeStringHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeStringHeaderFieldParser.m.orig	Wed Sep 19 18:23:58 2012
+++ sope-mime/NGMime/NGMimeStringHeaderFieldParser.m	Thu Sep 20 18:49:13 2012
@@ -29,9 +29,6 @@
 
 static BOOL StripLeadingSpaces = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   StripLeadingSpaces = [self doesStripLeadingSpaces];
 }
$OpenBSD$
--- sope-mime/NGMime/NGMimeTextBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeTextBodyGenerator.m	Thu Sep 20 18:36:45 2012
@@ -27,15 +27,6 @@
 
 @implementation NGMimeTextBodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (NSStringEncoding)_encodingFromContentType:(NGMimeType *)_type {
   NSStringEncoding encoding;
   NSString *charset;
$OpenBSD$
--- sope-mime/NGMime/NGMimeType.m.orig	Wed Sep 19 18:22:52 2012
+++ sope-mime/NGMime/NGMimeType.m	Thu Sep 20 18:46:03 2012
@@ -39,10 +39,6 @@ static BOOL _parseMimeType(id self, NSString *_str, NS
 
 @implementation NGMimeType
 
-+ (int)version {
-  return 2;
-}
-
 static NSMutableDictionary *typeToClass = nil;
 
 static inline Class
fix-sope-with-libobjc2.diff (77,836 bytes)   
buzzdee

buzzdee

2012-09-20 13:26

reporter   ~0004513

here you go: Those two fix-*diff files contain everything. The sope related one, contains the other two "old" patches too.
Its doing the stuff for version a)
-remove all +(int) version class methods

  • remove all NSAssert2 checks about the version of the superclass in +initialize
  • remove +initialize methods, where the NSAssert whas the only thing it did

This works for me, but probably someone else should at least eyeball the patch whether I messed something up (don't hope so ;)
and check the code, whether my grep was not good enough to spot all places where version checks may happened

2012-09-21 02:48

 

fix-sope-with-libobjc2-new.diff (76,884 bytes)   
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOAssociation.m	Thu Sep 20 18:56:23 2012
@@ -42,10 +42,6 @@
 
 static Class WOKeyPathAssociationClass = Nil;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   NSString *s;
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOKeyPathAssociationSystemKVC.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOKeyPathAssociationSystemKVC.m	Thu Sep 20 18:17:38 2012
@@ -48,9 +48,6 @@
 static NSNumber *yesNum = nil;
 static NSNumber *noNum  = nil;
 
-+ (int)version {
-  return [super version] + 0; /* v2 */
-}
 + (void)initialize {
   if (yesNum == nil) yesNum = [[NSNumber numberWithBool:YES] retain];
   if (noNum  == nil) noNum  = [[NSNumber numberWithBool:NO]  retain];
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOKeyPathAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOKeyPathAssociation.m	Thu Sep 20 18:17:23 2012
@@ -174,10 +174,6 @@ typedef union {
 
 @implementation WOKeyPathAssociation
 
-+ (int)version {
-  return 2;
-}
-
 static Class NumberClass = Nil;
 static Class StringClass = Nil;
 #if NeXT_Foundation_LIBRARY || COCOA_Foundation_LIBRARY || \
@@ -203,11 +199,7 @@ static NSNumber *uinum0 = nil, *uinum1 = nil;
 
   if (isInitialized) return;
   isInitialized = YES;
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
-  
   debugOn = [[[NSUserDefaults standardUserDefaults]
                               objectForKey:@"WODebugKeyPathAssociation"]
                               boolValue] ? 1 : 0;
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOLabelAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOLabelAssociation.m	Thu Sep 20 18:17:54 2012
@@ -30,15 +30,6 @@
 
 @implementation WOLabelAssociation
 
-+ (int)version {
-  return [super version] /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithKey:(NSString *)_key inTable:(NSString *)_table
   withDefaultValue:(NSString *)_default
 {
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOResourceURLAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOResourceURLAssociation.m	Thu Sep 20 18:18:08 2012
@@ -32,15 +32,8 @@
 
 static BOOL doDebug = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   doDebug = [ud boolForKey:@"WOResourceURLAssociationDebugEnabled"];
 }
 
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOScriptAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOScriptAssociation.m	Thu Sep 20 18:18:22 2012
@@ -33,14 +33,6 @@
 
 static BOOL doDebug = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
 + (NSString *)defaultScriptLanguage {
   return @"javascript";
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOValueAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOValueAssociation.m	Thu Sep 20 18:18:37 2012
@@ -29,13 +29,7 @@
 
 static Class StrClass = Nil;
 
-+ (int)version {
-  return [super version] /* v2 */;
-}
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   StrClass = [NSString class];
 }
 
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOActionURL.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOActionURL.m	Thu Sep 20 18:13:20 2012
@@ -57,15 +57,6 @@
 
 @implementation WOActionURL
 
-+ (int)version {
-  return 1;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 + (BOOL)containsLinkInAssociations:(NSDictionary *)_assocs {
   if (_assocs == nil) return NO;
   if ([_assocs objectForKey:@"href"])             return YES;
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOBrowser.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOBrowser.m	Thu Sep 20 18:13:35 2012
@@ -50,16 +50,6 @@
 
 @implementation WOBrowser
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_c
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOForm.m.orig	Wed Sep 19 18:39:08 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOForm.m	Thu Sep 20 18:55:04 2012
@@ -31,10 +31,6 @@
 
 static int debugTakeValues = -1;
 
-+ (int)version {
-  return 5;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_c
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOFrame.m.orig	Wed Sep 19 18:37:46 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOFrame.m	Thu Sep 20 18:54:08 2012
@@ -88,10 +88,6 @@
 
 @implementation WOFrame
 
-+ (int)version {
-  return 1;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOHTMLDynamicElement.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOHTMLDynamicElement.m	Thu Sep 20 18:13:56 2012
@@ -27,17 +27,9 @@
 
 static BOOL debugActionExecute = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
   NSUserDefaults *ud;
     
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   ud = [NSUserDefaults standardUserDefaults];
   debugActionExecute = [ud boolForKey:@"WODebugActions"];
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOHyperlink.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOHyperlink.m	Thu Sep 20 18:14:24 2012
@@ -65,15 +65,6 @@
 
 @implementation WOHyperlink
 
-+ (int)version {
-  return [super version] + 2 /* v4 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 + (id)allocWithZone:(NSZone *)zone {
   static Class WOHyperlinkClass = Nil;
   static _WOTemporaryHyperlink *temporaryHyperlink = nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOIFrame.m.orig	Wed Sep 19 18:39:44 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOIFrame.m	Thu Sep 20 18:55:47 2012
@@ -90,10 +90,6 @@
 
 @implementation WOIFrame
 
-+ (int)version {
-  return 1;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOImageButton.m.orig	Wed Sep 19 18:38:30 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOImageButton.m	Thu Sep 20 18:54:48 2012
@@ -56,10 +56,6 @@
 
 @implementation WOImageButton
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOInput.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOInput.m	Thu Sep 20 18:14:50 2012
@@ -28,17 +28,9 @@
 
 static BOOL takeValueDebugOn = YES;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   if ((takeValueDebugOn = [ud boolForKey:@"WODebugTakeValues"]))
     NSLog(@"WOInput: WODebugTakeValues on.");
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOPopUpButton.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOPopUpButton.m	Thu Sep 20 18:15:15 2012
@@ -68,15 +68,7 @@ static Class NSDateClass = Nil;
 static NSNumber *yesNum = nil;
 static BOOL debugPopUp = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   if (yesNum == nil) yesNum = [[NSNumber numberWithBool:YES] retain];
 }
 
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WORepetition.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WORepetition.m	Thu Sep 20 18:15:37 2012
@@ -137,14 +137,7 @@ static inline Class _classForConfig(NSDictionary *_con
 
 @implementation WORepetition
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   if (debugTakeValues == -1) {
     debugTakeValues = 
       [[NSUserDefaults standardUserDefaults] boolForKey:@"WODebugTakeValues"]
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOString.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOString.m	Thu Sep 20 18:15:55 2012
@@ -88,15 +88,6 @@
 
 @implementation WOString
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 + (id)allocWithZone:(NSZone *)zone {
   static Class WOStringClass = Nil;
   static _WOTemporaryString *temporaryString = nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOSubmitButton.m.orig	Wed Sep 19 18:40:22 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOSubmitButton.m	Thu Sep 20 18:55:13 2012
@@ -46,9 +46,6 @@
 
 static BOOL WOSubmitButtonEnableValueSync = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m	Thu Sep 20 18:16:14 2012
@@ -97,13 +97,7 @@ static Class NSURLClass = Nil;
 
 @implementation _WOComplexHyperlink
 
-+ (int)version {
-  return [super version] /* v4 */;
-}
 + (void)initialize {
-  NSAssert2([super version] == 4,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   if (NSURLClass == Nil)
     NSURLClass = [NSURL class];
 }
@@ -407,7 +401,7 @@ static BOOL debugStaticLinks = NO;
   if (hrefValue == nil)
     return NO;
   
-  if ((*(Class *)hrefValue == NSURLClass) ||
+  if ([hrefValue isMemberOfClass:NSURLClass] ||
       [hrefValue isKindOfClass:NSURLClass]) {
     s = [hrefValue stringValueRelativeToURL:base];
   }
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/_WOSimpleActionHyperlink.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/_WOSimpleActionHyperlink.m	Thu Sep 20 18:16:31 2012
@@ -49,15 +49,6 @@
 
 @implementation _WOSimpleActionHyperlink
 
-+ (int)version {
-  return [super version] + 0 /* v4 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 4,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   hyperlinkInfo:(WOHyperlinkInfo *)_info
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/NGObjWeb/NGHttp/NGHttpBodyParser.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/NGHttp/NGHttpBodyParser.m	Thu Sep 20 18:20:02 2012
@@ -59,15 +59,6 @@
 
 @implementation NGHttpMultipartFormDataBodyParser
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (BOOL)parseImmediatlyWithDelegate:(id)_delegate
   multipart:(id<NGMimePart>)_part data:(NSData *)_data 
 {
$OpenBSD$
--- sope-appserver/NGObjWeb/NGHttp/NGHttpMessageParser.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/NGHttp/NGHttpMessageParser.m	Thu Sep 20 18:20:37 2012
@@ -47,10 +47,6 @@ static inline void NGAddChar(NSMutableData *_data, int
 
 @implementation NGHttpMessageParser
 
-+ (int)version {
-  return [super version] + 0 /* v3 */;
-}
-
 static NGMimeType           *wwwFormUrlEncoded = nil;
 static NGMimeType           *multipartFormData = nil;
 static id<NGMimeBodyParser> wwwFormUrlParser   = nil;
@@ -61,10 +57,6 @@ static id<NGMimeBodyParser> multipartFormDataParser = 
   if (!isInitialized) {
     isInitialized = YES;
 
-    NSAssert2([super version] == 3,
-	      @"invalid superclass (%@) version %i !",
-	      NSStringFromClass([self superclass]), [super version]);
-    
     wwwFormUrlEncoded = 
       [[NGMimeType mimeType:@"application/x-www-form-urlencoded"] retain];
     multipartFormData = [[NGMimeType mimeType:@"multipart/form-data"] retain];
$OpenBSD$
--- sope-appserver/NGObjWeb/OWResourceManager.m.orig	Wed Sep 19 18:42:07 2012
+++ sope-appserver/NGObjWeb/OWResourceManager.m	Thu Sep 20 18:56:15 2012
@@ -84,10 +84,6 @@
 
 @implementation OWResourceManager
 
-+ (int)version {
-  return 4;
-}
-
 static NSFileManager *fm                = nil;
 static Class    UrlClass                = Nil;
 static NSString *resourcePrefix         = @"";
$OpenBSD$
--- sope-appserver/NGObjWeb/OWViewRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/OWViewRequestHandler.m	Thu Sep 20 18:20:58 2012
@@ -42,14 +42,7 @@ static BOOL perflog = NO;
 
 @implementation OWViewRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   perflog = [[NSUserDefaults standardUserDefaults]
                              boolForKey:@"OWViewRequestHandlerProfile"];
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoComponent.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoComponent.m	Thu Sep 20 18:21:40 2012
@@ -28,19 +28,6 @@
 
 @implementation SoComponent
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  static BOOL didInit = NO;
-  
-  if (didInit) return;
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  didInit = YES;
-}
-
 - (void)dealloc {
   [self->soResourceManager release];
   [self->soTemplate        release];
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoControlPanel.m.orig	Wed Sep 19 18:44:17 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoControlPanel.m	Thu Sep 20 18:56:44 2012
@@ -29,10 +29,6 @@
 
 @implementation SoControlPanel
 
-+ (int)version {
-  return 1;
-}
-
 - (id)handleQueryWithUnboundKey:(NSString *)_key {
   return [self lookupName:_key 
 	       inContext:[[WOApplication application] context]
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoCookieAuthenticator.m.orig	Wed Sep 19 18:43:46 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoCookieAuthenticator.m	Thu Sep 20 18:54:26 2012
@@ -45,10 +45,6 @@
 
 static NSString *prefix = @"0xHIGHFLYx";
 
-+ (int)version {
-  return 1;
-}
-
 /* HTTP basic authentication */
 
 - (NSString *)cookieNameInContext:(WOContext *)_ctx {
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoHTTPAuthenticator.m.orig	Wed Sep 19 18:42:40 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoHTTPAuthenticator.m	Thu Sep 20 18:56:33 2012
@@ -39,10 +39,6 @@
 
 @implementation SoHTTPAuthenticator
 
-+ (int)version {
-  return 1;
-}
-
 /* HTTP basic authentication */
 
 - (NSString *)authRealm {
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoLookupAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoLookupAssociation.m	Thu Sep 20 18:21:10 2012
@@ -26,15 +26,6 @@
 
 @implementation SoLookupAssociation
 
-+ (int)version {
-  return [super version] /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithTraversalPath:(NSArray *)_tp acquire:(BOOL)_ac {
   if ((self = [super init])) {
     self->traversalPath = [_tp copy];
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoObjectRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoObjectRequestHandler.m	Thu Sep 20 18:22:17 2012
@@ -59,20 +59,13 @@ static NSString *rapidTurnAroundPath = nil;
 
 static NSString *redirectURISafetySuffix = nil;
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
 + (void)initialize {
   static BOOL     didInit = NO;
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
 
   if (didInit) return;
-
   didInit = YES;
-  NSAssert2([super version] == 2,
-	    @"invalid superclass (%@) version %i !",
-	    NSStringFromClass([self superclass]), [super version]);
 
   lm          = [NGLoggerManager defaultLoggerManager];
   logger      = [lm loggerForClass:self];
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoSubContext.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoSubContext.m	Thu Sep 20 18:21:56 2012
@@ -29,15 +29,6 @@
 
 @implementation SoSubContext
 
-+ (int)version {
-  return [super version] + 0 /* v8 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 8,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithParentContext:(WOContext *)_parent {
   if ((self = [super init])) {
     self->parentContext = [_parent retain];
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOTemplateBuilder.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Templates/WOTemplateBuilder.m	Thu Sep 20 18:53:58 2012
@@ -24,10 +24,6 @@
 
 @implementation WOTemplateBuilder
 
-+ (int)version {
-  return 2;
-}
-
 /* building */
 
 - (WOTemplate *)buildTemplateAtURL:(NSURL *)_url {
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOTemplate.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Templates/WOTemplate.m	Thu Sep 20 18:19:03 2012
@@ -24,15 +24,6 @@
 
 @implementation WOTemplate
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithURL:(NSURL *)_url rootElement:(WOElement *)_element {
   if ((self = [super init])) {
     self->url         = [_url     copy];
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOWrapperTemplateBuilder.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Templates/WOWrapperTemplateBuilder.m	Thu Sep 20 18:19:17 2012
@@ -70,15 +70,8 @@ static BOOL logScriptAdditions   = NO;
 static NSStringEncoding parserEncoding;
 static NSDictionary *defaultAssocMap = nil;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   AssocClass = [WOAssociation class];
   StrClass   = [NSString      class];
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOxElemBuilder.m.orig	Wed Sep 19 18:37:18 2012
+++ sope-appserver/NGObjWeb/Templates/WOxElemBuilder.m	Thu Sep 20 18:54:37 2012
@@ -109,9 +109,6 @@ static Class         CompoundElemClass = Nil;
 static NSNumber      *yesNum   = nil;
 static WOAssociation *yesAssoc = nil;
 
-+ (int)version {
-  return 1;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOxTemplateBuilder.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Templates/WOxTemplateBuilder.m	Thu Sep 20 18:19:30 2012
@@ -32,15 +32,7 @@
 static BOOL  profLoading = NO;
 static Class DateClass = Nil;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   if (DateClass == Nil)
     DateClass = [NSDate class];
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/WOAdaptor.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOAdaptor.m	Thu Sep 20 18:57:03 2012
@@ -31,10 +31,6 @@
 
 @implementation WOAdaptor
 
-+ (int)version {
-  return 1;
-}
-
 - (id)initWithName:(NSString *)_name arguments:(NSDictionary *)_args
   application:(WOCoreApplication *)_application
 {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOApplication.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOApplication.m	Thu Sep 20 18:22:33 2012
@@ -68,10 +68,6 @@ static NSString *defaultCompRqHandlerClassName = @"OWV
 static NSString *defaultCompRqHandlerClassName = @"WOComponentRequestHandler";
 #endif
 
-+ (int)version {
-  return [super version] + 5 /* v6 */;
-}
-
 /* old license checks */
 
 - (NSCalendarDate *)appExpireDate {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOChildComponentReference.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOChildComponentReference.m	Thu Sep 20 18:22:50 2012
@@ -35,14 +35,7 @@
 static int profileComponents = -1;
 static Class NSDateClass = Nil;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   if (profileComponents == -1) {
     profileComponents = [[[NSUserDefaults standardUserDefaults]
                                           objectForKey:@"WOProfileComponents"]
$OpenBSD$
--- sope-appserver/NGObjWeb/WOComponentDefinition.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOComponentDefinition.m	Thu Sep 20 18:57:44 2012
@@ -175,10 +175,6 @@ static BOOL enableClassLessComponents = NO;
 static BOOL enableWOOFiles            = NO;
 static NSArray *woxExtensions = nil;
 
-+ (int)version {
-  return 4;
-}
-
 + (void)initialize {
   static BOOL isInitialized = NO;
   NSUserDefaults *ud;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOComponentFault.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOComponentFault.m	Thu Sep 20 18:57:20 2012
@@ -28,10 +28,6 @@
 
 @implementation WOComponentFault
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithResourceManager:(WOResourceManager *)_rm
   pageName:(NSString *)_name
   languages:(NSArray *)_langs
$OpenBSD$
--- sope-appserver/NGObjWeb/WOComponentRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOComponentRequestHandler.m	Thu Sep 20 18:23:20 2012
@@ -40,15 +40,6 @@
 
 @implementation WOComponentRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (WOResponse *)restoreSessionWithID:(NSString *)_sid
   inContext:(WOContext *)_ctx
 {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOComponent.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOComponent.m	Thu Sep 20 18:23:08 2012
@@ -67,10 +67,6 @@ static BOOL  abortOnAwakeComponentInCtxDealloc = NO;
 static BOOL  abortOnMissingCtx                 = NO;
 static BOOL  wakeupPageOnCreation              = NO;
 
-+ (int)version {
-  // TODO: is really v4 for baseURL/cycleContext ivar changes
-  return [super version] + 0 /* v2 */;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
@@ -78,10 +74,6 @@ static BOOL  wakeupPageOnCreation              = NO;
 
   if (didInit) return;
   didInit = YES;
-  
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
   ud = [NSUserDefaults standardUserDefaults];
   lm = [NGLoggerManager defaultLoggerManager];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOContext.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOContext.m	Thu Sep 20 18:54:16 2012
@@ -49,10 +49,6 @@ static Class WOAppClass = Nil;
 
 @implementation WOContext
 
-+ (int)version {
-  return 9;
-}
-
 static Class    WOContextClass       = Nil;
 static Class    MutableStrClass      = Nil;
 static int      contextCount         = 0;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOCoreApplication.m.orig	Wed Sep 19 18:34:58 2012
+++ sope-appserver/NGObjWeb/WOCoreApplication.m	Thu Sep 20 18:53:18 2012
@@ -76,10 +76,6 @@ static Class    NSDateClass      = Nil;
 static NGLogger *logger          = nil;
 static NGLogger *perfLogger      = nil;
 
-+ (int)version {
-  return 1;
-}
-
 NGObjWeb_DECLARE id WOApp = nil;
 static NSMutableArray *activeApps = nil; // THREAD
 
$OpenBSD$
--- sope-appserver/NGObjWeb/WODirectActionRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WODirectActionRequestHandler.m	Thu Sep 20 18:23:32 2012
@@ -43,15 +43,8 @@ static Class NSDateClass = Nil;
 
 @implementation WODirectActionRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
   NSDateClass = [NSDate class];
   perflog = [ud boolForKey:@"WOProfileDirectActionRequestHandler"];
$OpenBSD$
--- sope-appserver/NGObjWeb/WODirectAction.m.orig	Wed Sep 19 18:41:26 2012
+++ sope-appserver/NGObjWeb/WODirectAction.m	Thu Sep 20 18:55:57 2012
@@ -35,10 +35,6 @@
 
 @implementation WODirectAction
 
-+ (int)version {
-  return 4;
-}
-
 - (id)initWithRequest:(WORequest *)_request {
   if ((self = [super init]) != nil) {
   }
$OpenBSD$
--- sope-appserver/NGObjWeb/WODynamicElement.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WODynamicElement.m	Thu Sep 20 18:23:51 2012
@@ -39,19 +39,11 @@ typedef struct _WOExtraAttrStruct  {
 
 @implementation WODynamicElement
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 static Class FormClass        = Nil;
 static Class FormElementClass = Nil;
 
 + (void)initialize {
   static BOOL isInitialized = NO;
-  
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   if (!isInitialized) {
     isInitialized = YES;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOElement.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOElement.m	Thu Sep 20 18:57:10 2012
@@ -26,10 +26,6 @@
 
 @implementation WOElement
 
-+ (int)version {
-  return 2;
-}
-
 static id numStrings[100];
 
 + (void)initialize {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOFileSessionStore.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOFileSessionStore.m	Thu Sep 20 18:24:06 2012
@@ -55,15 +55,6 @@
 
 static BOOL logExpire = YES;
 
-+ (int)version {
-  return [super version] + 0;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithSessionPath:(NSString *)_path {
   NSFileManager *fm;
   BOOL isDir;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOHTTPConnection.m.orig	Wed Sep 19 18:35:39 2012
+++ sope-appserver/NGObjWeb/WOHTTPConnection.m	Thu Sep 20 18:53:29 2012
@@ -66,10 +66,6 @@ static NSArray  *noProxy     = nil;
 static BOOL doDebug   = NO;
 static BOOL logStream = NO;
 
-+ (int)version {
-  return 3;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   static BOOL didInit = NO;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpAdaptor.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpAdaptor.m	Thu Sep 20 18:24:21 2012
@@ -79,9 +79,6 @@ static BOOL     debugOn                      = NO;
   return perfLogger != nil ? YES : NO;
 }
 
-+ (int)version {
-  return [super version] + 1 /* v2 */;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
@@ -89,10 +86,6 @@ static BOOL     debugOn                      = NO;
 
   if (didInit) return;
   didInit = YES;
-
-  NSAssert2([super version] == 1,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
   ud = [NSUserDefaults standardUserDefaults];
   lm = [NGLoggerManager defaultLoggerManager];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpTransaction.m.orig	Wed Sep 19 18:45:46 2012
+++ sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpTransaction.m	Thu Sep 20 18:57:58 2012
@@ -100,9 +100,6 @@ static NGLogger *debugLogger       = nil;
 static NGLogger *perfLogger        = nil;
 static NGLogger *transActionLogger = nil;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOMailDelivery.m.orig	Wed Sep 19 18:40:49 2012
+++ sope-appserver/NGObjWeb/WOMailDelivery.m	Thu Sep 20 18:55:22 2012
@@ -26,10 +26,6 @@
 
 @implementation WOMailDelivery
 
-+ (int)version {
-  return 2;
-}
-
 WOMailDelivery *sharedInstance = nil;
 
 + (id)sharedInstance {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOMessage.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOMessage.m	Thu Sep 20 18:56:55 2012
@@ -48,7 +48,7 @@ static WOMessageProfileInfo profiletot = { 0, 0, 0, 0,
 
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  
+   
   if (NSStringClass == Nil)
     NSStringClass = [NSString class];
   
@@ -83,10 +83,6 @@ static __inline__ NSMutableData *_checkBody(WOMessage 
       [self->content methodForSelector:@selector(appendBytes:length:)];
   }
   return self->content;
-}
-
-+ (int)version {
-  return 5;
 }
 
 + (void)setDefaultEncoding:(NSStringEncoding)_encoding {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOPageRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOPageRequestHandler.m	Thu Sep 20 18:24:39 2012
@@ -50,14 +50,8 @@ static BOOL  debugOn             = NO;
 
 @implementation WOPageRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
 + (void)initialize {
   NSUserDefaults *ud;
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
   NSDateClass = [NSDate class];
   ud = [NSUserDefaults standardUserDefaults];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOProxyRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOProxyRequestHandler.m	Thu Sep 20 18:24:51 2012
@@ -28,15 +28,6 @@
 
 @implementation WOProxyRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithHost:(NSString *)_hostName onPort:(unsigned int)_port {
   if ((self = [super init])) {
     self->client = 
$OpenBSD$
--- sope-appserver/NGObjWeb/WORequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WORequestHandler.m	Thu Sep 20 18:56:06 2012
@@ -51,9 +51,6 @@ static Class    NSDateClass        = Nil;
 static NGLogger *logger            = nil;
 static NGLogger *perfLogger        = nil;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
@@ -62,7 +59,6 @@ static NGLogger *perfLogger        = nil;
   if (didInit)
     return;
   didInit = YES;
-
   NSDateClass = [NSDate class];
   
   lm         = [NGLoggerManager defaultLoggerManager];
$OpenBSD$
--- sope-appserver/NGObjWeb/WORequest.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WORequest.m	Thu Sep 20 18:25:03 2012
@@ -55,10 +55,6 @@ NGObjWeb_DECLARE NSString *WONoSelectionString       =
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return [super version] + 2 /* v7 */;
-}
-
 + (void)initialize {
   static BOOL isInitialized = NO;
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
@@ -67,10 +63,6 @@ static BOOL debugOn = NO;
 
   if (isInitialized) return;
   isInitialized = YES;
-  
-  NSAssert2([super version] == 5,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   debugOn = [WOApplication isDebuggingEnabled];
     
$OpenBSD$
--- sope-appserver/NGObjWeb/WOResourceManager.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOResourceManager.m	Thu Sep 20 18:53:06 2012
@@ -77,10 +77,6 @@
 
 @implementation WOResourceManager
 
-+ (int)version {
-  return 4;
-}
-
 static Class    UrlClass             = Nil;
 static NSString *resourcePrefix      = @"";
 static NSString *rapidTurnAroundPath = nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOResourceRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOResourceRequestHandler.m	Thu Sep 20 18:25:15 2012
@@ -40,15 +40,6 @@
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (WOResponse *)_handleWebServerResourcesRequest:(WORequest *)_request {
   WOApplication *app;
   NSArray       *handlerPath = nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOResponse.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOResponse.m	Thu Sep 20 18:25:28 2012
@@ -34,18 +34,12 @@ static unsigned int  OWMinimumZipSize  = 1024;
 static BOOL          dontZip  = NO;
 static BOOL          debugZip = NO;
 
-+ (int)version {
-  return [super version] + 1 /* v6 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   static BOOL didInit = NO;
   if (didInit) return;
   didInit = YES;
-  NSAssert2([super version] == 5,
-	    @"invalid superclass (%@) version %i !",
-	    NSStringFromClass([self superclass]), [super version]);
-  
+
   dontZip  = [ud boolForKey:@"WODontZipResponse"];
   debugZip = [ud boolForKey:@"WODebugZipResponse"];
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/WOServerSessionStore.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOServerSessionStore.m	Thu Sep 20 18:25:41 2012
@@ -60,15 +60,6 @@
 
 static BOOL logExpiredSessions = NO;
 
-+ (int)version {
-  return [super version] + 0;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)init {
   if ((self = [super init])) {
     self->idToSession = NSCreateMapTable(NSObjectMapKeyCallBacks,
$OpenBSD$
--- sope-appserver/NGObjWeb/WOSessionStore.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOSessionStore.m	Thu Sep 20 18:57:35 2012
@@ -33,10 +33,6 @@
 
 @implementation WOSessionStore
 
-+ (int)version {
-  return 2;
-}
-
 + (WOSessionStore *)serverSessionStore {
   return
     [[[NSClassFromString(@"WOServerSessionStore") alloc] init] autorelease];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOSession.m.orig	Wed Sep 19 18:36:09 2012
+++ sope-appserver/NGObjWeb/WOSession.m	Thu Sep 20 18:53:48 2012
@@ -60,10 +60,6 @@ NGObjWeb_DECLARE
 
 @implementation WOSession
 
-+ (int)version {
-  return 5;
-}
-
 static int   profileComponents = -1;
 static int   logPageCache      = -1;
 static Class NSDateClass = Nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOSimpleHTTPParser.m.orig	Wed Sep 19 18:36:41 2012
+++ sope-appserver/NGObjWeb/WOSimpleHTTPParser.m	Thu Sep 20 18:53:36 2012
@@ -35,9 +35,6 @@ static BOOL  heavyDebugOn   = NO;
 static int   fileIOBoundary = 0;
 static int   maxUploadSize  = 0;
 
-+ (int)version {
-  return 1;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-appserver/NGObjWeb/WOStatisticsStore.m.orig	Wed Sep 19 18:45:14 2012
+++ sope-appserver/NGObjWeb/WOStatisticsStore.m	Thu Sep 20 18:55:32 2012
@@ -59,10 +59,6 @@ static Class NSNumberClass    = Nil;
 static Class NSStringClass    = Nil;
 static BOOL  runMultithreaded = NO;
 
-+ (int)version {
-  return 1;
-}
-
 + (void)initialize {
   NSNumberClass = [NSNumber class];
   NSStringClass = [NSString class];
$OpenBSD$
--- sope-appserver/WEExtensions/WECalendarField.m.orig	Wed Sep 19 19:03:19 2012
+++ sope-appserver/WEExtensions/WECalendarField.m	Thu Sep 20 18:26:20 2012
@@ -27,14 +27,7 @@ static Class StrClass = Nil;
 
 @implementation WECalendarField
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   StrClass = [NSString class];
 }
 
$OpenBSD$
--- sope-appserver/WEExtensions/WEDragContainer.m.orig	Wed Sep 19 18:54:19 2012
+++ sope-appserver/WEExtensions/WEDragContainer.m	Thu Sep 20 18:26:32 2012
@@ -58,10 +58,6 @@
 
 static BOOL debugTakeValues = NO;
 
-+ (int)version {
-  return 0 + [super version];
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/WEExtensions/WEDropContainer.m.orig	Wed Sep 19 18:49:20 2012
+++ sope-appserver/WEExtensions/WEDropContainer.m	Thu Sep 20 18:26:44 2012
@@ -71,10 +71,6 @@
 
 @implementation WEDropContainer
 
-+ (int)version {
-  return 0 + [super version];
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WEExtensions/WEEpozEditor.m.orig	Wed Sep 19 18:50:56 2012
+++ sope-appserver/WEExtensions/WEEpozEditor.m	Thu Sep 20 18:26:55 2012
@@ -52,15 +52,6 @@
 
 @implementation WEEpozEditor
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_root {
$OpenBSD$
--- sope-appserver/WEExtensions/WEPageLink.m.orig	Wed Sep 19 18:52:09 2012
+++ sope-appserver/WEExtensions/WEPageLink.m	Thu Sep 20 18:27:08 2012
@@ -54,15 +54,6 @@
 
 @implementation WEPageLink
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/WEExtensions/WEPageView.m.orig	Wed Sep 19 18:58:04 2012
+++ sope-appserver/WEExtensions/WEPageView.m	Thu Sep 20 18:27:25 2012
@@ -117,10 +117,6 @@ static NSNumber *YesNumber = nil;
   if (YesNumber == nil) YesNumber = [[NSNumber numberWithBool:YES] retain];
 }
 
-+ (int)version {
-  return [super version] + 0;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
@@ -634,10 +630,6 @@ static inline NSString *WEPageLabelForKey(NSString *_k
 @end /* WEPageView */
 
 @implementation WEPageItem
-
-+ (int)version {
-  return [super version] + 0;
-}
 
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
$OpenBSD$
--- sope-appserver/WEExtensions/WEResourceManager.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-appserver/WEExtensions/WEResourceManager.m	Thu Sep 20 18:27:44 2012
@@ -162,19 +162,12 @@ static NSString *themesDirName = @"Themes";
   return ma;
 }
 
-+ (int)version {
-  return [super version] + 0 /* v4 */;
-}
 + (void)initialize {
   static BOOL isInitialized = NO;
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   if (isInitialized) return;
   isInitialized = YES;
   
-  NSAssert2([super version] == 4,
-	    @"invalid superclass (%@) version %i !",
-	    NSStringFromClass([self superclass]), [super version]);
-
   null = [[NSNull null] retain];
   
   if ((debugOn = [ud boolForKey:@"WEResourceManagerDebugEnabled"]))
$OpenBSD$
--- sope-appserver/WEExtensions/WETabItem.m.orig	Wed Sep 19 18:53:03 2012
+++ sope-appserver/WEExtensions/WETabItem.m	Thu Sep 20 18:27:57 2012
@@ -38,9 +38,6 @@ extern NSString *WETabView_COLLECT;
 
 static Class StrClass = Nil;
 
-+ (int)version {
-  return [super version] + 0;
-}
 + (void)initialize {
   StrClass = [NSString class];
 }
$OpenBSD$
--- sope-appserver/WEExtensions/WETabView.m.orig	Wed Sep 19 18:55:46 2012
+++ sope-appserver/WEExtensions/WETabView.m	Thu Sep 20 18:28:49 2012
@@ -45,10 +45,6 @@ static NSNumber *YesNumber;
     YesNumber = [[NSNumber numberWithBool:YES] retain];
 }
 
-+ (int)version {
-  return [super version] + 0;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/WEExtensions/WETableCalcMatrix.m.orig	Wed Sep 19 18:48:02 2012
+++ sope-appserver/WEExtensions/WETableCalcMatrix.m	Thu Sep 20 18:52:57 2012
@@ -461,10 +461,6 @@ static NSNull *null = nil;
 
 @implementation WETableCalcMatrix
 
-+ (int)version {
-  return 0;
-}
-
 static inline MatrixEntry *entryAt(WETableCalcMatrix *self, unsigned x, 
 				   unsigned y) {
   return self->matrix +
$OpenBSD$
--- sope-appserver/WEExtensions/WETableView/WETableData.m.orig	Wed Sep 19 19:00:20 2012
+++ sope-appserver/WEExtensions/WETableView/WETableData.m	Thu Sep 20 18:28:14 2012
@@ -57,15 +57,6 @@
 
 @implementation WETableData
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)_initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_c
$OpenBSD$
--- sope-appserver/WEExtensions/WETableView/WETableView.m.orig	Wed Sep 19 19:01:29 2012
+++ sope-appserver/WEExtensions/WETableView/WETableView.m	Thu Sep 20 18:28:31 2012
@@ -57,14 +57,8 @@ static Class    StrClass   = Nil;
 static BOOL ShowNavigationAlways   = YES;
 static BOOL ShowNavigationInFooter = YES;
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   StrClass = [NSString class];
   if (YesNumber == nil) YesNumber = [[NSNumber numberWithBool:YES] retain];
$OpenBSD$
--- sope-appserver/WOExtensions/JSAlertPanel.m.orig	Wed Sep 19 19:04:46 2012
+++ sope-appserver/WOExtensions/JSAlertPanel.m	Thu Sep 20 18:29:16 2012
@@ -44,15 +44,6 @@
 
 @implementation JSAlertPanel
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WOExtensions/JSConfirmPanel.m.orig	Wed Sep 19 19:05:53 2012
+++ sope-appserver/WOExtensions/JSConfirmPanel.m	Thu Sep 20 18:29:26 2012
@@ -45,15 +45,6 @@
 
 @implementation JSConfirmPanel
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WOExtensions/JSImageFlyover.m.orig	Wed Sep 19 19:07:07 2012
+++ sope-appserver/WOExtensions/JSImageFlyover.m	Thu Sep 20 18:29:40 2012
@@ -48,15 +48,6 @@
 
 @implementation JSImageFlyover
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-	    @"invalid superclass (%@) version %i !",
-	    NSStringFromClass([self superclass]), [super version]);
-}
-
 - (NSDictionary *)extractQueryParameters: (NSDictionary *)_set {
   NSMutableDictionary *paras = nil;
   NSMutableArray      *paraKeys = nil;
$OpenBSD$
--- sope-appserver/WOExtensions/JSModalWindow.m.orig	Wed Sep 19 19:08:08 2012
+++ sope-appserver/WOExtensions/JSModalWindow.m	Thu Sep 20 18:29:52 2012
@@ -54,15 +54,6 @@
 
 @implementation JSModalWindow
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WOExtensions/JSTextFlyover.m.orig	Wed Sep 19 19:10:24 2012
+++ sope-appserver/WOExtensions/JSTextFlyover.m	Thu Sep 20 18:30:04 2012
@@ -40,15 +40,6 @@
 
 @implementation JSTextFlyover
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WOExtensions/JSValidatedField.m.orig	Wed Sep 19 19:09:22 2012
+++ sope-appserver/WOExtensions/JSValidatedField.m	Thu Sep 20 18:30:17 2012
@@ -42,15 +42,6 @@
 
 @implementation JSValidatedField
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-core/EOControl/EODataSource.m.orig	Sat Sep 15 10:53:53 2012
+++ sope-core/EOControl/EODataSource.m	Thu Sep 20 18:52:15 2012
@@ -25,10 +25,6 @@
 
 @implementation EODataSource
 
-+ (int)version {
-  return 1;
-}
-
 /* reflection */
 
 - (EOClassDescription *)classDescriptionForObjects {
$OpenBSD$
--- sope-core/NGExtensions/NGBundleManager.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-core/NGExtensions/NGBundleManager.m	Thu Sep 13 17:49:21 2012
@@ -615,7 +615,7 @@ static NSString *NGEnvVarPathSeparator = @":";
 
 // dependencies
 
-+ (NSInteger)version {
++ (int)version {
   return 2;
 }
 
$OpenBSD$
--- sope-core/NGExtensions/NGCustomFileManager.m.orig	Sat Sep 15 11:09:45 2012
+++ sope-core/NGExtensions/NGCustomFileManager.m	Thu Sep 20 18:31:08 2012
@@ -39,15 +39,6 @@ typedef struct {
 
 @implementation NGCustomFileManager
 
-+ (int)version {
-  return [super version] + 0 /* v0 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 0,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 /* customization */
 
 - (NSString *)makeAbsolutePath:(NSString *)_path {
$OpenBSD$
--- sope-core/NGExtensions/NGFileManager.m.orig	Sat Sep 15 11:11:47 2012
+++ sope-core/NGExtensions/NGFileManager.m	Thu Sep 20 18:52:02 2012
@@ -28,10 +28,6 @@
 
 static BOOL logPathOps = NO;
 
-+ (int)version {
-  return 0;
-}
-
 - (id)init {
   if ((self = [super init])) {
     self->cwd = @"/";
$OpenBSD$
--- sope-core/NGStreams/NGByteBuffer.m.orig	Sat Sep 15 10:51:02 2012
+++ sope-core/NGStreams/NGByteBuffer.m	Thu Sep 20 18:31:30 2012
@@ -44,10 +44,6 @@ static Class DataStreamClass = Nil;
   DataStreamClass   = NSClassFromString(@"NGDataStream");
 }
 
-+ (int)version {
-  return [super version] + 1;
-}
-
 + (id)byteBufferWithSource:(id<NGStream>)_source la:(unsigned)_la {
   if (_source            == nil)            return nil;
   if (*(Class *)_source == DataStreamClass) return _source;
$OpenBSD$
--- sope-core/NGStreams/NGCTextStream.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-core/NGStreams/NGCTextStream.m	Thu Sep 20 18:31:44 2012
@@ -42,10 +42,6 @@ NGStreams_DECLARE id<NGExtendedTextOutputStream> NGTex
 
 @implementation NGCTextStream
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 // stdio
 
 NGStreams_DECLARE void NGInitTextStdio(void) {
@@ -81,9 +77,6 @@ static void _flushAtExit(void) {
 + (void)initialize {
   BOOL isInitialized = NO;
   if (!isInitialized) {
-    NSAssert2([super version] == 2,
-              @"invalid superclass (%@) version %i !",
-              NSStringFromClass([self superclass]), [super version]);
     isInitialized = YES;
 
     atexit(_flushAtExit);
$OpenBSD$
--- sope-core/NGStreams/NGDataStream.m.orig	Sat Sep 15 10:48:53 2012
+++ sope-core/NGStreams/NGDataStream.m	Thu Sep 20 18:31:20 2012
@@ -27,10 +27,6 @@
 
 @implementation NGDataStream
 
-+ (int)version {
-  return [super version] + 2;
-}
-
 + (id)dataStream {
   return [self streamWithData:[NSMutableData dataWithCapacity:1024]];
 }
$OpenBSD$
--- sope-core/NGStreams/NGInternetSocketDomain.m.orig	Sat Sep 15 11:09:01 2012
+++ sope-core/NGStreams/NGInternetSocketDomain.m	Thu Sep 20 18:52:36 2012
@@ -31,9 +31,6 @@
 
 static NGInternetSocketDomain *domain = nil;
 
-+ (int)version {
-  return 1;
-}
 + (void)initialize {
   if (domain == nil) domain = [[NGInternetSocketDomain alloc] init];
 }
$OpenBSD$
--- sope-core/NGStreams/NGSocket.m.orig	Sat Sep 15 11:06:59 2012
+++ sope-core/NGStreams/NGSocket.m	Thu Sep 20 18:51:51 2012
@@ -64,19 +64,15 @@
 static BOOL    isInitialized = NO;
 static WSADATA wsaData;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   if (!isInitialized) {
     isInitialized = YES;
 
-    if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0)
-      NSLog(@"WARNING: Could not start Windows sockets !");
+  if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0)
+    NSLog(@"WARNING: Could not start Windows sockets !");
 
-    NSLog(@"WinSock version %i.%i.",
-          LOBYTE(wsaData.wVersion), HIBYTE(wsaData.wVersion));
+  NSLog(@"WinSock version %i.%i.",
+        LOBYTE(wsaData.wVersion), HIBYTE(wsaData.wVersion));
   }
 }
 
$OpenBSD$
--- sope-core/NGStreams/NGTextStream.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-core/NGStreams/NGTextStream.m	Thu Sep 20 18:52:27 2012
@@ -24,10 +24,6 @@
 
 @implementation NGTextStream
 
-+ (int)version {
-  return 2;
-}
-
 - (void)dealloc {
   [self->lastException release];
   [super dealloc];
$OpenBSD$
--- sope-gdl1/GDLAccess/EOAdaptorDataSource.m.orig	Sat Sep 15 10:47:25 2012
+++ sope-gdl1/GDLAccess/EOAdaptorDataSource.m	Thu Sep 20 18:32:10 2012
@@ -98,15 +98,8 @@ static NSNotificationCenter *getNC(void ) {
 }
 
 + (void)initialize {
-  NSAssert2([super version] == 1,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   null = [[EONull null] retain];
   NSCalendarDateClass = [NSCalendarDate class];
-}
-+ (int)version {
-  return [super version] + 1; /* v2 */
 }
 
 - (id)initWithAdaptorName:(NSString *)_adName
$OpenBSD$
--- sope-gdl1/GDLAccess/EOModel.m.orig	Wed Sep 19 18:30:05 2012
+++ sope-gdl1/GDLAccess/EOModel.m	Thu Sep 20 18:51:42 2012
@@ -402,10 +402,6 @@ void EOModel_linkCategories(void) {
   return ents;
 }
 
-+ (int)version {
-  return 1;
-}
-
 /* description */
 
 - (NSString *)description {
$OpenBSD$
--- sope-gdl1/GDLAccess/EOSQLExpression.m.orig	Wed Sep 19 18:31:49 2012
+++ sope-gdl1/GDLAccess/EOSQLExpression.m	Thu Sep 20 18:51:33 2012
@@ -154,10 +154,6 @@ NSString *EOBindVariableValueKey       = @"value";
 
 @implementation EOSQLExpression
 
-+ (int)version {
-  return 1;
-}
-
 + (void)initialize {
   if (null == nil) null = [[NSNull null] retain];
 }
$OpenBSD$
--- sope-ldap/NGLdap/NGLdapFileManager.m.orig	Sat Sep 15 10:45:48 2012
+++ sope-ldap/NGLdap/NGLdapFileManager.m	Thu Sep 20 18:32:23 2012
@@ -30,15 +30,6 @@
 
 @implementation NGLdapFileManager
 
-+ (int)version {
-  return [super version] + 0 /* v0 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 0,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 static NSString *LDAPObjectClassKey = @"objectclass";
 static NSArray  *objectClassAttrs = nil;
 static NSArray  *fileInfoAttrs    = nil;
$OpenBSD$
--- sope-mime/NGImap4/NGImap4Client.m.orig	Wed Sep 19 18:08:29 2012
+++ sope-mime/NGImap4/NGImap4Client.m	Thu Sep 20 18:44:31 2012
@@ -131,9 +131,6 @@ static NSMutableDictionary *namespaces;
   return self->useTLS;
 }
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   static BOOL didInit = NO;
$OpenBSD$
--- sope-mime/NGImap4/NGImap4FileManager.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-mime/NGImap4/NGImap4FileManager.m	Thu Sep 20 18:32:49 2012
@@ -44,15 +44,8 @@
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v0 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  
-  NSAssert2([super version] == 0,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   if ((debugOn = [ud boolForKey:@"NGImap4FileManagerDebugEnabled"]))
     NSLog(@"NGImap4FileManager debugging is enabled.");
$OpenBSD$
--- sope-mime/NGImap4/NGImap4Message.m.orig	Wed Sep 19 18:07:40 2012
+++ sope-mime/NGImap4/NGImap4Message.m	Thu Sep 20 18:44:21 2012
@@ -61,10 +61,6 @@ static NSArray           *rfc822NameArray  = nil;
 static BOOL              debugFlags        = NO;
 static BOOL              ImapDebugEnabled  = NO;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   static BOOL didInit = NO;
$OpenBSD$
--- sope-mime/NGMail/NGMBoxReader.m.orig	Wed Sep 19 18:14:26 2012
+++ sope-mime/NGMail/NGMBoxReader.m	Thu Sep 20 18:46:19 2012
@@ -27,10 +27,6 @@
 
 @implementation NGMBoxReader
 
-+ (int)version {
-  return 2;
-}
-
 static inline int __readByte(NGMBoxReader *self);
 static inline void
 __appendByte(NGMBoxReader *self, NSMutableData *_data, IMP _readBytes, int _c);
$OpenBSD$
--- sope-mime/NGMail/NGMailAddressList.m.orig	Wed Sep 19 18:10:20 2012
+++ sope-mime/NGMail/NGMailAddressList.m	Thu Sep 20 18:45:07 2012
@@ -24,10 +24,6 @@
 
 @implementation NGMailAddressList
 
-+ (int)version {
-  return 2;
-}
-
 + (id)mailAddressListWithAddresses:(NSSet *)_addresses
   groupName:(NSString *)_groupName {
   return [[[NGMailAddressList alloc] initWithAddresses:_addresses
$OpenBSD$
--- sope-mime/NGMail/NGMailAddressParser.m.orig	Wed Sep 19 18:18:20 2012
+++ sope-mime/NGMail/NGMailAddressParser.m	Thu Sep 20 18:46:47 2012
@@ -43,10 +43,6 @@
 static Class    StrClass = Nil;
 static NSNumber *yesNum  = nil;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   if (yesNum == nil) yesNum = [[NSNumber numberWithBool:YES] retain];
   StrClass = [NSString class];
$OpenBSD$
--- sope-mime/NGMail/NGMailAddress.m.orig	Wed Sep 19 18:17:00 2012
+++ sope-mime/NGMail/NGMailAddress.m	Thu Sep 20 18:46:38 2012
@@ -24,10 +24,6 @@
 
 @implementation NGMailAddress
 
-+ (int)version {
-  return 2;
-}
-
 + (id)mailAddressWithAddress:(NSString *)_address
   displayName:(NSString *)_owner
   route:(NSString *)_route
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageBodyGenerator.m	Thu Sep 20 18:34:09 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeMessageBodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 /* encoding data */
 
 - (NSData *)encodeData:(NSData *)_data
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageGenerator.m	Thu Sep 20 18:34:26 2012
@@ -29,16 +29,9 @@
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
 
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   debugOn = [ud boolForKey:@"NGMimeGeneratorDebugEnabled"];
   if (debugOn)
     NSLog(@"WARNING[%@]: NGMimeGeneratorDebugEnabled is enabled!", self);
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageMultipartBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageMultipartBodyGenerator.m	Thu Sep 20 18:34:42 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeMessageMultipartBodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id<NGMimePartGenerator>)multipartBodyGenerator:(NGMimeBodyGenerator *)_gen
   generatorForPart:(id<NGMimePart>)_part 
 {
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageParser.m	Thu Sep 20 18:35:03 2012
@@ -77,13 +77,7 @@ static Class NGMimeMessageParserClass = Nil; 
 
 static Class NSStringClass = Nil;
 
-+ (int)version {
-  return 3;
-}
 + (void)initialize {
-  NSAssert2([super version] == 3,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   if (NSStringClass == Nil)
     NSStringClass = [NSString class];
 }
@@ -121,15 +115,6 @@ static Class NSStringClass = Nil;
 
 
 @implementation NGMimeRfc822BodyParser
-
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
 
 - (id)parseBodyOfPart:(id<NGMimePart>)_part data:(NSData *)_data
   delegate:(id)_d
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageRfc822BodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageRfc822BodyGenerator.m	Thu Sep 20 18:33:41 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeMessageRfc822BodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id<NGMimePartGenerator>)generatorForPart:(id<NGMimePart>)_part {
   id gen;
 
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageTextBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageTextBodyGenerator.m	Thu Sep 20 18:33:08 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeMessageTextBodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (NSData *)encodeData:(NSData *)_data
   forPart:(id<NGMimePart>)_part
   additionalHeaders:(NGMutableHashMap *)_addHeaders
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessage.m.orig	Wed Sep 19 18:13:42 2012
+++ sope-mime/NGMail/NGMimeMessage.m	Thu Sep 20 18:45:53 2012
@@ -27,19 +27,15 @@
 static NGMimeType *defaultTextType = nil;
 static NGMimeType *defaultDataType = nil;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   static BOOL isInitialized = NO;
   if (!isInitialized) {
     isInitialized = YES;
     
-    defaultTextType = 
-      [[NGMimeType mimeType:@"text/plain; charset=us-ascii"] retain];
-    defaultDataType = 
-      [[NGMimeType mimeType:@"application/octet-stream"] retain];
+  defaultTextType = 
+    [[NGMimeType mimeType:@"text/plain; charset=us-ascii"] retain];
+  defaultDataType = 
+    [[NGMimeType mimeType:@"application/octet-stream"] retain];
   }
 }
   
$OpenBSD$
--- sope-mime/NGMail/NGPop3Client.m.orig	Wed Sep 19 18:15:50 2012
+++ sope-mime/NGMail/NGPop3Client.m	Thu Sep 20 18:46:28 2012
@@ -27,10 +27,6 @@
 
 @implementation NGPop3Client
 
-+ (int)version {
-  return 2;
-}
-
 + (id)pop3Client {
   NGActiveSocket *s;
   
$OpenBSD$
--- sope-mime/NGMail/NGPop3Support.m.orig	Wed Sep 19 18:11:22 2012
+++ sope-mime/NGMail/NGPop3Support.m	Thu Sep 20 18:45:39 2012
@@ -25,10 +25,6 @@
 
 @implementation NGPop3Response
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithLine:(NSString *)_line {
   if ((self = [super init])) {
     self->line = [_line copy];
@@ -67,10 +63,6 @@
 
 @implementation NGPop3MessageInfo
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithNumber:(int)_num size:(int)_size client:(NGPop3Client *)_client{
   if ((self = [super init])) {
     self->messageNumber = _num;
@@ -114,10 +106,6 @@
 
 @implementation NGPop3MailDropEnumerator
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithMessageInfoEnumerator:(NSEnumerator *)_infos {
   self->msgInfos = [_infos retain];
   return self;
@@ -148,17 +136,9 @@
 
 @implementation NGPop3Exception
 
-+ (int)version {
-  return 2;
-}
-
 @end /* NGPop3Exception */
 
 @implementation NGPop3StateException
-
-+ (int)version {
-  return 2;
-}
 
 - (id)init {
   return [self initWithClient:nil requiredState:0];
$OpenBSD$
--- sope-mime/NGMail/NGSmtpClient.m.orig	Wed Sep 19 18:08:59 2012
+++ sope-mime/NGMail/NGSmtpClient.m	Thu Sep 20 18:44:42 2012
@@ -106,10 +106,6 @@
 
 @implementation NGSmtpClient
 
-+ (int)version {
-  return 2;
-}
-
 + (id)smtpClient {
   NGActiveSocket *s;
   s = [NGActiveSocket socketInDomain:[NGInternetSocketDomain domain]];
$OpenBSD$
--- sope-mime/NGMail/NGSmtpSupport.m.orig	Wed Sep 19 18:09:38 2012
+++ sope-mime/NGMail/NGSmtpSupport.m	Thu Sep 20 18:44:54 2012
@@ -117,10 +117,6 @@ NSString *NGSmtpDescriptionForReplyCode(NGSmtpReplyCod
 
 @implementation NGSmtpResponse
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithCode:(NGSmtpReplyCode)_code text:(NSString *)_text {
   if ((self = [super init])) {
     self->code = _code;
$OpenBSD$
--- sope-mime/NGMime/NGMimeAddressHeaderFieldGenerator.m.orig	Wed Sep 19 18:25:12 2012
+++ sope-mime/NGMime/NGMimeAddressHeaderFieldGenerator.m	Thu Sep 20 18:48:24 2012
@@ -44,10 +44,6 @@
 
 static int UseLFSeperatedAddressEntries = -1;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
 
$OpenBSD$
--- sope-mime/NGMime/NGMimeBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeBodyGenerator.m	Thu Sep 20 18:47:08 2012
@@ -28,9 +28,6 @@
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-mime/NGMime/NGMimeBodyParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeBodyParser.m	Thu Sep 20 18:36:22 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeBodyParser
 
-+ (int)version {
-  return 2;
-}
-
 - (id)parseBodyOfPart:(id<NGMimePart>)_part
   data:(NSData *)_data
   delegate:(id)_d
@@ -43,15 +39,9 @@
 
 static int UseFoundationStringEncodingForMimeText = -1;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   if (UseFoundationStringEncodingForMimeText == -1) {
     UseFoundationStringEncodingForMimeText =
       [ud boolForKey:@"UseFoundationStringEncodingForMimeText"]?1:0;
$OpenBSD$
--- sope-mime/NGMime/NGMimeBodyPartParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeBodyPartParser.m	Thu Sep 20 18:36:34 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeBodyPartParser
 
-+ (int)version {
-  return 3;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 3,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (NGMimeType *)defaultContentTypeForPart:(id<NGMimePart>)_part {
   return [NGMimeType mimeType:@"text/plain"];
 }
$OpenBSD$
--- sope-mime/NGMime/NGMimeBodyPart.m.orig	Wed Sep 19 18:21:13 2012
+++ sope-mime/NGMime/NGMimeBodyPart.m	Thu Sep 20 18:47:37 2012
@@ -27,10 +27,6 @@
 
 @implementation NGMimeBodyPart
 
-+ (int)version {
-  return 2;
-}
-
 + (id)bodyPartWithHeader:(NGHashMap *)_header {
   return [[[self alloc] initWithHeader:_header] autorelease];
 }
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentDispositionHeaderFieldGenerator.m.orig	Wed Sep 19 18:20:06 2012
+++ sope-mime/NGMime/NGMimeContentDispositionHeaderFieldGenerator.m	Thu Sep 20 18:48:04 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeContentDispositionHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentDispositionHeaderFieldParser.m.orig	Wed Sep 19 18:25:43 2012
+++ sope-mime/NGMime/NGMimeContentDispositionHeaderFieldParser.m	Thu Sep 20 18:50:16 2012
@@ -29,9 +29,6 @@
 static BOOL StripLeadingSpaces = NO;
 static BOOL MimeLogEnabled     = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   StripLeadingSpaces = [self doesStripLeadingSpaces];
   MimeLogEnabled     = [self isMIMELogEnabled];
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentLengthHeaderFieldGenerator.m.orig	Wed Sep 19 18:28:22 2012
+++ sope-mime/NGMime/NGMimeContentLengthHeaderFieldGenerator.m	Thu Sep 20 18:49:33 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeContentLengthHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentLengthHeaderFieldParser.m.orig	Wed Sep 19 18:19:31 2012
+++ sope-mime/NGMime/NGMimeContentLengthHeaderFieldParser.m	Thu Sep 20 18:47:27 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeContentLengthHeaderFieldParser
 
-+ (int)version {
-  return 2;
-}
-
 - (id)parseValue:(id)_data ofHeaderField:(NSString *)_field {
   const char *buf, *ptr;
     
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentTypeHeaderFieldGenerator.m.orig	Wed Sep 19 18:27:50 2012
+++ sope-mime/NGMime/NGMimeContentTypeHeaderFieldGenerator.m	Thu Sep 20 18:48:44 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeContentTypeHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentTypeHeaderFieldParser.m.orig	Wed Sep 19 18:18:48 2012
+++ sope-mime/NGMime/NGMimeContentTypeHeaderFieldParser.m	Thu Sep 20 18:47:18 2012
@@ -29,9 +29,6 @@
 static BOOL StripLeadingSpaces = NO;
 static BOOL MimeLogEnabled     = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   StripLeadingSpaces = [self doesStripLeadingSpaces];
   MimeLogEnabled     = [self isMIMELogEnabled];
$OpenBSD$
--- sope-mime/NGMime/NGMimeExceptions.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeExceptions.m	Thu Sep 20 18:35:26 2012
@@ -24,10 +24,6 @@
 
 @implementation NGMimeException
 
-+ (int)version {
-  return 2;
-}
-
 - (id)init {
   return [self initWithReason:@"a MIME exception occured"];
 }
@@ -35,15 +31,6 @@
 @end /* NGMimeException */
 
 @implementation NGMimeParserException
-
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
 
 - (id)init {
   return [self initWithReason:@"a MIME exception occured during parsing"];
$OpenBSD$
--- sope-mime/NGMime/NGMimeFileData.m.orig	Wed Sep 12 11:32:13 2012
+++ sope-mime/NGMime/NGMimeFileData.m	Wed Sep 12 11:32:30 2012
@@ -119,7 +119,7 @@ static unsigned      tmpmask  = 0600;
   return [[self _data] bytes];
 }
 
-- (unsigned int)length {
+- (NSUInteger)length {
   if (self->length == -1) {
     self->length = [[[[NSFileManager defaultManager]
                                      fileAttributesAtPath:self->path
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFieldGeneratorSet.m.orig	Wed Sep 19 18:27:08 2012
+++ sope-mime/NGMime/NGMimeHeaderFieldGeneratorSet.m	Thu Sep 20 18:50:04 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeHeaderFieldGeneratorSet
 
-+ (int)version {
-  return 2;
-}
-
 static NGMimeHeaderFieldGeneratorSet *rfc822Set = nil;
 
 + (id)headerFieldGenerator {
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFieldGenerator.m.orig	Wed Sep 19 18:17:38 2012
+++ sope-mime/NGMime/NGMimeHeaderFieldGenerator.m	Thu Sep 20 18:46:56 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 + (id)headerFieldGenerator {
   return [[[self alloc] init] autorelease];
 }
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFieldParserSet.m.orig	Wed Sep 19 18:26:07 2012
+++ sope-mime/NGMime/NGMimeHeaderFieldParserSet.m	Thu Sep 20 18:48:35 2012
@@ -28,10 +28,6 @@
 
 @implementation NGMimeHeaderFieldParserSet
 
-+ (int)version {
-  return 2;
-}
-
 static NGMimeHeaderFieldParserSet *rfc822set = nil;
 
 + (id)headerFieldParserSet {
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFieldParser.m.orig	Wed Sep 19 18:20:41 2012
+++ sope-mime/NGMime/NGMimeHeaderFieldParser.m	Thu Sep 20 18:48:55 2012
@@ -45,10 +45,6 @@ static int StripLeadingSpaces = -1;
   return StripLeadingSpaces ? YES : NO;
 }
 
-+ (int)version {
-  return 2;
-}
-
 - (NSString *)removeCommentsFromValue:(NSString *)_rawValue {
   unsigned int len = [_rawValue length];
   unichar      bytes[len + 1];
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFields.m.orig	Wed Sep 19 18:26:41 2012
+++ sope-mime/NGMime/NGMimeHeaderFields.m	Thu Sep 20 18:49:21 2012
@@ -31,10 +31,6 @@ NGMime_DECLARE NSString *NGMimeContentDispositionFormT
 
 static int MimeLogEnabled = -1;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-mime/NGMime/NGMimeMultipartBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeMultipartBodyGenerator.m	Thu Sep 20 18:35:15 2012
@@ -34,16 +34,9 @@ static Class NGMimeFileDataClass   = Nil;
 static Class NGMimeJoinedDataClass = Nil;
 static BOOL  debugOn = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   NGMimeFileDataClass   = [NGMimeFileData class];
   NGMimeJoinedDataClass = [NGMimeJoinedData class];
   
$OpenBSD$
--- sope-mime/NGMime/NGMimeMultipartBodyParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeMultipartBodyParser.m	Thu Sep 20 18:36:06 2012
@@ -29,15 +29,9 @@
 
 static int MimeLogEnabled = -1;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   MimeLogEnabled = [ud boolForKey:@"MimeLogEnabled"] ? 1 : 0;
 }
 
$OpenBSD$
--- sope-mime/NGMime/NGMimeMultipartBody.m.orig	Wed Sep 19 18:21:46 2012
+++ sope-mime/NGMime/NGMimeMultipartBody.m	Thu Sep 20 18:48:14 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeMultipartBody
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithPart:(id<NGMimePart>)_part {
   if ((self = [super init])) {
     self->flags.isParsed = YES;
$OpenBSD$
--- sope-mime/NGMime/NGMimePartGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimePartGenerator.m	Thu Sep 20 18:47:45 2012
@@ -31,9 +31,6 @@
 static NSProcessInfo *Pi = nil;
 static BOOL       debugOn = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-mime/NGMime/NGMimePartParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimePartParser.m	Thu Sep 20 18:49:44 2012
@@ -95,10 +95,6 @@ static Class NSMutableDataClass = NULL;
 
 static NGMimeHeaderNames *HeaderNames = NULL;
 
-+ (int)version {
-  return 3;
-}
-
 static int MimeLogEnabled = -1;
 
 + (void)initialize {
$OpenBSD$
--- sope-mime/NGMime/NGMimeRFC822DateHeaderFieldGenerator.m.orig	Wed Sep 19 18:22:23 2012
+++ sope-mime/NGMime/NGMimeRFC822DateHeaderFieldGenerator.m	Thu Sep 20 18:47:54 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeRFC822DateHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m.orig	Wed Sep 19 18:23:32 2012
+++ sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m	Thu Sep 20 18:49:04 2012
@@ -31,10 +31,6 @@
 static NSTimeZone *gmt = nil;
 static NSTimeZone *met = nil;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   static BOOL didInit = NO;
   if (didInit) return;
$OpenBSD$
--- sope-mime/NGMime/NGMimeRfc822BodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeRfc822BodyGenerator.m	Thu Sep 20 18:35:38 2012
@@ -26,15 +26,6 @@
 
 @implementation NGMimeRfc822BodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id<NGMimePartGenerator>)generatorForPart:(id<NGMimePart>)_part {
   id g;
   
$OpenBSD$
--- sope-mime/NGMime/NGMimeStringHeaderFieldGenerator.m.orig	Wed Sep 19 18:24:25 2012
+++ sope-mime/NGMime/NGMimeStringHeaderFieldGenerator.m	Thu Sep 20 18:49:54 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeStringHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeStringHeaderFieldParser.m.orig	Wed Sep 19 18:23:58 2012
+++ sope-mime/NGMime/NGMimeStringHeaderFieldParser.m	Thu Sep 20 18:49:13 2012
@@ -29,9 +29,6 @@
 
 static BOOL StripLeadingSpaces = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   StripLeadingSpaces = [self doesStripLeadingSpaces];
 }
$OpenBSD$
--- sope-mime/NGMime/NGMimeTextBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeTextBodyGenerator.m	Thu Sep 20 18:36:45 2012
@@ -27,15 +27,6 @@
 
 @implementation NGMimeTextBodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (NSStringEncoding)_encodingFromContentType:(NGMimeType *)_type {
   NSStringEncoding encoding;
   NSString *charset;
$OpenBSD$
--- sope-mime/NGMime/NGMimeType.m.orig	Wed Sep 19 18:22:52 2012
+++ sope-mime/NGMime/NGMimeType.m	Thu Sep 20 18:46:03 2012
@@ -39,10 +39,6 @@ static BOOL _parseMimeType(id self, NSString *_str, NS
 
 @implementation NGMimeType
 
-+ (int)version {
-  return 2;
-}
-
 static NSMutableDictionary *typeToClass = nil;
 
 static inline Class
fix-sope-with-libobjc2-new.diff (76,884 bytes)   
buzzdee

buzzdee

2012-09-21 02:49

reporter   ~0004526

I recognized I left some debugging output in sope, the fix-sope-with-libobjc2-new.diff has it removed.

buzzdee

buzzdee

2012-09-21 04:09

reporter   ~0004527

crap, I forgot about that one:

with my patch and libobjc2, I get this in the webinterface:

[missing component: R.0.2.0.1.29]
and this in the logs:

  • in /var/log/sogo/sogod.log

27.0.0.1 - - [20/Sep/2012:21:26:00 GMT] "GET
/SOGo/so/user/Mail//0/folderINBOX/expunge HTTP/1.0" 200 2/0 0.044


2012-09-20 21:26:00.172 sogod[3839] WOComponentDefinition:
componentClass: UIxMailMainFrame
2012-09-20 21:26:00.176 sogod[3839] WOComponentDefinition:
componentClass: UIxMailMainFrame
Sep 20 21:26:00 sogod [3839]: <0x0x1f67f86ed088[WOComponentFault]>
resolving fault for component UIxPageFrame
2012-09-20 21:26:00.205 sogod[3839] WOComponentDefinition:
componentClass: UIxPageFrame
Sep 20 21:26:00 sogod [3839]: <0x0x1f67f86ed088[WOComponentFault]>
rm: <SoProductResourceManager[0x0x1f67ea4dba88]: product='MailerUI'>
Sep 20 21:26:00 sogod [3839]: <0x0x1f67f86ed088[WOComponentFault]> c:
<0x0x1f67e9245408[UIxPageFrame]: name=UIxPageFrame #subs=3
awake=0x0x1f67ea58b808>
Sep 20 21:26:00 sogod [3839]: <0x0x1f67f86b4588[WOComponentFault]>
resolving fault for component if-ie
2012-09-20 21:26:00.210 sogod[3839] WOComponentDefinition:
componentClass: if-ie
Sep 20 21:26:00 sogod [3839]: <0x0x1f67e62bf088[WOComponentDefinition]>
Note: did not find component class with name 'if-ie'
Sep 20 21:26:00 sogod [3839]: <0x0x1f67e62bf088[WOComponentDefinition]>
Note: missing class for component: 'if-ie'
Sep 20 21:26:00 sogod [3839]: <0x0x1f67f86b4588[WOComponentFault]>
rm: <SoProductResourceManager[0x0x1f67ea4cfd08]: product='CommonUI'>
Sep 20 21:26:00 sogod [3839]: <0x0x1f67f86b4588[WOComponentFault]> c:
(null)
Sep 20 21:26:00 sogod [3839]: <0x0x1f67f86b4588[WOComponentFault]>
could not resolve fault for component: if-ie
Sep 20 21:26:00 sogod [3839]: <0x0x1f67f86b4588[WOComponentFault]>
resource-manager: <SoProductResourceManager[0x0x1f67ea4cfd08]:
product='CommonUI'>
Sep 20 21:26:00 sogod [3839]: <0x0x1f67f86b4588[WOComponentFault]>
parent: <0x0x1f67e9245408[UIxPageFrame]: name=UIxPageFrame
parent=UIxMailMainFrame #subs=3 awake=0x0x1f67ea58b808>
Sep 20 21:26:00 sogod [3839]: [WARN] UIxPageFrame Could not resolve
component fault: R.0.2.0.1.29
Sep 20 21:26:00 sogod [3839]: [WARN]
<0x0x1f67e7d63688[WOChildComponentReference]> did not find child
component R.0.2.0.1.29 of parent UIxPageFrame
Sep 20 21:26:00 sogod [3839]: <0x0x1f67f86b4bc8[WOComponentFault]>
resolving fault for component UIxToolbar
2012-09-20 21:26:00.222 sogod[3839] WOComponentDefinition:
componentClass: UIxToolbar
Sep 20 21:26:00 sogod [3839]: <0x0x1f67f86b4bc8[WOComponentFault]>
rm: <SoProductResourceManager[0x0x1f67ea4cfd08]: product='CommonUI'>
Sep 20 21:26:00 sogod [3839]: <0x0x1f67f86b4bc8[WOComponentFault]> c:
<0x0x1f67e62c7a08[UIxToolbar]: name=UIxToolbar
awake=0x0x1f67ea58b808>
Sep 20 21:26:02 sogod [3839]: [WARN]
<0x0x1f67f86582c8[UIxEnvelopeAddressFormatter]> unexpected envelope
address: <0x0x1f67e6318a08[NGImap4EnvelopeAddress]:>
Sep 20 21:26:02 sogod [3839]: [WARN]
<0x0x1f67f86582c8[UIxEnvelopeAddressFormatter]> unexpected envelope
address: <0x0x1f67de9b4388[NGImap4EnvelopeAddress]:>
Sep 20 21:26:02 sogod [3839]: <0x0x1f67f86edcc8[WOComponentFault]>
resolving fault for component UIxMailFilterPanel
2012-09-20 21:26:02.730 sogod[3839] WOComponentDefinition:
componentClass: UIxMailFilterPanel
Sep 20 21:26:02 sogod [3839]: <0x0x1f67f86edcc8[WOComponentFault]>
rm: <SoProductResourceManager[0x0x1f67ea4dba88]: product='MailerUI'>
Sep 20 21:26:02 sogod [3839]: <0x0x1f67f86edcc8[WOComponentFault]> c:
<0x0x1f67f8507a08[UIxMailFilterPanel]: name=UIxMailFilterPanel
awake=0x0x1f67ea58b808>

I think its a similar problem like NS(U)Integer vs. (unsigned) int thingie somewhere,
so that the signature of a method doesn't match what's expected.

Note, I tested my patch with "old libobjc" from gcc 4.2.1, and it works well. This problem only appears with libobjc2.

2012-10-13 12:17

 

SOGo-2.0.1-libobjc2-fixes.diff (1,311 bytes)   
$OpenBSD$
--- SOPE/NGCards/iCalObject.m.orig	Wed Sep 19 17:57:39 2012
+++ SOPE/NGCards/iCalObject.m	Thu Sep 20 18:41:57 2012
@@ -25,10 +25,6 @@
 
 @implementation iCalObject
 
-+ (int)version {
-  return 0;
-}
-
 // what shall we take, if no timeZone is specified in dateValues
 static NSTimeZone *defTZ = nil;
 + (void)setICalDefaultTimeZone:(NSTimeZone *)_timeZone {
$OpenBSD$
--- UI/SOGoUI/UIxComponent.m.orig	Wed Oct 10 20:53:23 2012
+++ UI/SOGoUI/UIxComponent.m	Sat Oct 13 13:19:47 2012
@@ -67,15 +67,7 @@ static NSMutableArray *monthLabelKeys     = nil;
 static NSMutableArray *abbrMonthLabelKeys = nil;
 static SoProduct      *commonProduct      = nil;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   if (dayLabelKeys == nil) {
     dayLabelKeys = [[NSMutableArray alloc] initWithCapacity:7];
     [dayLabelKeys addObject:@"Sunday"];
$OpenBSD$
--- UI/SOGoElements/bundle-info.plist.orig	Sat Oct 13 13:20:43 2012
+++ UI/SOGoElements/bundle-info.plist	Sat Oct 13 13:20:50 2012
@@ -1,7 +1,5 @@
 {
   requires = {
-    bundleManagerVersion = 1;
-    
     classes = (
       { name = NSObject; }
     );
SOGo-2.0.1-libobjc2-fixes.diff (1,311 bytes)   

2012-10-13 12:17

 

SOPE-2.0.1-libobjc2-fixes.diff (77,027 bytes)   
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOAssociation.m	Thu Sep 20 18:56:23 2012
@@ -42,10 +42,6 @@
 
 static Class WOKeyPathAssociationClass = Nil;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   NSString *s;
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOKeyPathAssociationSystemKVC.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOKeyPathAssociationSystemKVC.m	Thu Sep 20 18:17:38 2012
@@ -48,9 +48,6 @@
 static NSNumber *yesNum = nil;
 static NSNumber *noNum  = nil;
 
-+ (int)version {
-  return [super version] + 0; /* v2 */
-}
 + (void)initialize {
   if (yesNum == nil) yesNum = [[NSNumber numberWithBool:YES] retain];
   if (noNum  == nil) noNum  = [[NSNumber numberWithBool:NO]  retain];
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOKeyPathAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOKeyPathAssociation.m	Thu Sep 20 18:17:23 2012
@@ -174,10 +174,6 @@ typedef union {
 
 @implementation WOKeyPathAssociation
 
-+ (int)version {
-  return 2;
-}
-
 static Class NumberClass = Nil;
 static Class StringClass = Nil;
 #if NeXT_Foundation_LIBRARY || COCOA_Foundation_LIBRARY || \
@@ -203,11 +199,7 @@ static NSNumber *uinum0 = nil, *uinum1 = nil;
 
   if (isInitialized) return;
   isInitialized = YES;
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
-  
   debugOn = [[[NSUserDefaults standardUserDefaults]
                               objectForKey:@"WODebugKeyPathAssociation"]
                               boolValue] ? 1 : 0;
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOLabelAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOLabelAssociation.m	Thu Sep 20 18:17:54 2012
@@ -30,15 +30,6 @@
 
 @implementation WOLabelAssociation
 
-+ (int)version {
-  return [super version] /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithKey:(NSString *)_key inTable:(NSString *)_table
   withDefaultValue:(NSString *)_default
 {
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOResourceURLAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOResourceURLAssociation.m	Thu Sep 20 18:18:08 2012
@@ -32,15 +32,8 @@
 
 static BOOL doDebug = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   doDebug = [ud boolForKey:@"WOResourceURLAssociationDebugEnabled"];
 }
 
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOScriptAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOScriptAssociation.m	Thu Sep 20 18:18:22 2012
@@ -33,14 +33,6 @@
 
 static BOOL doDebug = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
 + (NSString *)defaultScriptLanguage {
   return @"javascript";
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/Associations/WOValueAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Associations/WOValueAssociation.m	Thu Sep 20 18:18:37 2012
@@ -29,13 +29,7 @@
 
 static Class StrClass = Nil;
 
-+ (int)version {
-  return [super version] /* v2 */;
-}
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   StrClass = [NSString class];
 }
 
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOActionURL.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOActionURL.m	Thu Sep 20 18:13:20 2012
@@ -57,15 +57,6 @@
 
 @implementation WOActionURL
 
-+ (int)version {
-  return 1;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 + (BOOL)containsLinkInAssociations:(NSDictionary *)_assocs {
   if (_assocs == nil) return NO;
   if ([_assocs objectForKey:@"href"])             return YES;
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOBrowser.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOBrowser.m	Thu Sep 20 18:13:35 2012
@@ -50,16 +50,6 @@
 
 @implementation WOBrowser
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_c
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOForm.m.orig	Wed Sep 19 18:39:08 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOForm.m	Thu Sep 20 18:55:04 2012
@@ -31,10 +31,6 @@
 
 static int debugTakeValues = -1;
 
-+ (int)version {
-  return 5;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_c
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOFrame.m.orig	Wed Sep 19 18:37:46 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOFrame.m	Thu Sep 20 18:54:08 2012
@@ -88,10 +88,6 @@
 
 @implementation WOFrame
 
-+ (int)version {
-  return 1;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOHTMLDynamicElement.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOHTMLDynamicElement.m	Thu Sep 20 18:13:56 2012
@@ -27,17 +27,9 @@
 
 static BOOL debugActionExecute = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
   NSUserDefaults *ud;
     
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   ud = [NSUserDefaults standardUserDefaults];
   debugActionExecute = [ud boolForKey:@"WODebugActions"];
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOHyperlink.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOHyperlink.m	Thu Sep 20 18:14:24 2012
@@ -65,15 +65,6 @@
 
 @implementation WOHyperlink
 
-+ (int)version {
-  return [super version] + 2 /* v4 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 + (id)allocWithZone:(NSZone *)zone {
   static Class WOHyperlinkClass = Nil;
   static _WOTemporaryHyperlink *temporaryHyperlink = nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOIFrame.m.orig	Wed Sep 19 18:39:44 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOIFrame.m	Thu Sep 20 18:55:47 2012
@@ -90,10 +90,6 @@
 
 @implementation WOIFrame
 
-+ (int)version {
-  return 1;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOImageButton.m.orig	Wed Sep 19 18:38:30 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOImageButton.m	Thu Sep 20 18:54:48 2012
@@ -56,10 +56,6 @@
 
 @implementation WOImageButton
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOInput.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOInput.m	Thu Sep 20 18:14:50 2012
@@ -28,17 +28,9 @@
 
 static BOOL takeValueDebugOn = YES;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   if ((takeValueDebugOn = [ud boolForKey:@"WODebugTakeValues"]))
     NSLog(@"WOInput: WODebugTakeValues on.");
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOPopUpButton.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOPopUpButton.m	Thu Sep 20 18:15:15 2012
@@ -68,15 +68,7 @@ static Class NSDateClass = Nil;
 static NSNumber *yesNum = nil;
 static BOOL debugPopUp = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   if (yesNum == nil) yesNum = [[NSNumber numberWithBool:YES] retain];
 }
 
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WORepetition.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WORepetition.m	Thu Sep 20 18:15:37 2012
@@ -137,14 +137,7 @@ static inline Class _classForConfig(NSDictionary *_con
 
 @implementation WORepetition
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   if (debugTakeValues == -1) {
     debugTakeValues = 
       [[NSUserDefaults standardUserDefaults] boolForKey:@"WODebugTakeValues"]
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOString.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOString.m	Thu Sep 20 18:15:55 2012
@@ -88,15 +88,6 @@
 
 @implementation WOString
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 + (id)allocWithZone:(NSZone *)zone {
   static Class WOStringClass = Nil;
   static _WOTemporaryString *temporaryString = nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/WOSubmitButton.m.orig	Wed Sep 19 18:40:22 2012
+++ sope-appserver/NGObjWeb/DynamicElements/WOSubmitButton.m	Thu Sep 20 18:55:13 2012
@@ -46,9 +46,6 @@
 
 static BOOL WOSubmitButtonEnableValueSync = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m	Thu Sep 20 18:16:14 2012
@@ -97,13 +97,7 @@ static Class NSURLClass = Nil;
 
 @implementation _WOComplexHyperlink
 
-+ (int)version {
-  return [super version] /* v4 */;
-}
 + (void)initialize {
-  NSAssert2([super version] == 4,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   if (NSURLClass == Nil)
     NSURLClass = [NSURL class];
 }
@@ -407,7 +401,7 @@ static BOOL debugStaticLinks = NO;
   if (hrefValue == nil)
     return NO;
   
-  if ((*(Class *)hrefValue == NSURLClass) ||
+  if ([hrefValue isMemberOfClass:NSURLClass] ||
       [hrefValue isKindOfClass:NSURLClass]) {
     s = [hrefValue stringValueRelativeToURL:base];
   }
$OpenBSD$
--- sope-appserver/NGObjWeb/DynamicElements/_WOSimpleActionHyperlink.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/DynamicElements/_WOSimpleActionHyperlink.m	Thu Sep 20 18:16:31 2012
@@ -49,15 +49,6 @@
 
 @implementation _WOSimpleActionHyperlink
 
-+ (int)version {
-  return [super version] + 0 /* v4 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 4,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   hyperlinkInfo:(WOHyperlinkInfo *)_info
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/NGObjWeb/NGHttp/NGHttpBodyParser.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/NGHttp/NGHttpBodyParser.m	Thu Sep 20 18:20:02 2012
@@ -59,15 +59,6 @@
 
 @implementation NGHttpMultipartFormDataBodyParser
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (BOOL)parseImmediatlyWithDelegate:(id)_delegate
   multipart:(id<NGMimePart>)_part data:(NSData *)_data 
 {
$OpenBSD$
--- sope-appserver/NGObjWeb/NGHttp/NGHttpMessageParser.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/NGHttp/NGHttpMessageParser.m	Thu Sep 20 18:20:37 2012
@@ -47,10 +47,6 @@ static inline void NGAddChar(NSMutableData *_data, int
 
 @implementation NGHttpMessageParser
 
-+ (int)version {
-  return [super version] + 0 /* v3 */;
-}
-
 static NGMimeType           *wwwFormUrlEncoded = nil;
 static NGMimeType           *multipartFormData = nil;
 static id<NGMimeBodyParser> wwwFormUrlParser   = nil;
@@ -61,10 +57,6 @@ static id<NGMimeBodyParser> multipartFormDataParser = 
   if (!isInitialized) {
     isInitialized = YES;
 
-    NSAssert2([super version] == 3,
-	      @"invalid superclass (%@) version %i !",
-	      NSStringFromClass([self superclass]), [super version]);
-    
     wwwFormUrlEncoded = 
       [[NGMimeType mimeType:@"application/x-www-form-urlencoded"] retain];
     multipartFormData = [[NGMimeType mimeType:@"multipart/form-data"] retain];
$OpenBSD$
--- sope-appserver/NGObjWeb/OWResourceManager.m.orig	Wed Sep 19 18:42:07 2012
+++ sope-appserver/NGObjWeb/OWResourceManager.m	Thu Sep 20 18:56:15 2012
@@ -84,10 +84,6 @@
 
 @implementation OWResourceManager
 
-+ (int)version {
-  return 4;
-}
-
 static NSFileManager *fm                = nil;
 static Class    UrlClass                = Nil;
 static NSString *resourcePrefix         = @"";
$OpenBSD$
--- sope-appserver/NGObjWeb/OWViewRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/OWViewRequestHandler.m	Thu Sep 20 18:20:58 2012
@@ -42,14 +42,7 @@ static BOOL perflog = NO;
 
 @implementation OWViewRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   perflog = [[NSUserDefaults standardUserDefaults]
                              boolForKey:@"OWViewRequestHandlerProfile"];
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoComponent.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoComponent.m	Thu Sep 20 18:21:40 2012
@@ -28,19 +28,6 @@
 
 @implementation SoComponent
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  static BOOL didInit = NO;
-  
-  if (didInit) return;
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  didInit = YES;
-}
-
 - (void)dealloc {
   [self->soResourceManager release];
   [self->soTemplate        release];
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoControlPanel.m.orig	Wed Sep 19 18:44:17 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoControlPanel.m	Thu Sep 20 18:56:44 2012
@@ -29,10 +29,6 @@
 
 @implementation SoControlPanel
 
-+ (int)version {
-  return 1;
-}
-
 - (id)handleQueryWithUnboundKey:(NSString *)_key {
   return [self lookupName:_key 
 	       inContext:[[WOApplication application] context]
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoCookieAuthenticator.m.orig	Wed Sep 19 18:43:46 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoCookieAuthenticator.m	Thu Sep 20 18:54:26 2012
@@ -45,10 +45,6 @@
 
 static NSString *prefix = @"0xHIGHFLYx";
 
-+ (int)version {
-  return 1;
-}
-
 /* HTTP basic authentication */
 
 - (NSString *)cookieNameInContext:(WOContext *)_ctx {
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoHTTPAuthenticator.m.orig	Wed Sep 19 18:42:40 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoHTTPAuthenticator.m	Thu Sep 20 18:56:33 2012
@@ -39,10 +39,6 @@
 
 @implementation SoHTTPAuthenticator
 
-+ (int)version {
-  return 1;
-}
-
 /* HTTP basic authentication */
 
 - (NSString *)authRealm {
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoLookupAssociation.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoLookupAssociation.m	Thu Sep 20 18:21:10 2012
@@ -26,15 +26,6 @@
 
 @implementation SoLookupAssociation
 
-+ (int)version {
-  return [super version] /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithTraversalPath:(NSArray *)_tp acquire:(BOOL)_ac {
   if ((self = [super init])) {
     self->traversalPath = [_tp copy];
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoObjectRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoObjectRequestHandler.m	Thu Sep 20 18:22:17 2012
@@ -59,20 +59,13 @@ static NSString *rapidTurnAroundPath = nil;
 
 static NSString *redirectURISafetySuffix = nil;
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
 + (void)initialize {
   static BOOL     didInit = NO;
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
 
   if (didInit) return;
-
   didInit = YES;
-  NSAssert2([super version] == 2,
-	    @"invalid superclass (%@) version %i !",
-	    NSStringFromClass([self superclass]), [super version]);
 
   lm          = [NGLoggerManager defaultLoggerManager];
   logger      = [lm loggerForClass:self];
$OpenBSD$
--- sope-appserver/NGObjWeb/SoObjects/SoSubContext.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/SoObjects/SoSubContext.m	Thu Sep 20 18:21:56 2012
@@ -29,15 +29,6 @@
 
 @implementation SoSubContext
 
-+ (int)version {
-  return [super version] + 0 /* v8 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 8,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithParentContext:(WOContext *)_parent {
   if ((self = [super init])) {
     self->parentContext = [_parent retain];
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOTemplateBuilder.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Templates/WOTemplateBuilder.m	Thu Sep 20 18:53:58 2012
@@ -24,10 +24,6 @@
 
 @implementation WOTemplateBuilder
 
-+ (int)version {
-  return 2;
-}
-
 /* building */
 
 - (WOTemplate *)buildTemplateAtURL:(NSURL *)_url {
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOTemplate.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Templates/WOTemplate.m	Thu Sep 20 18:19:03 2012
@@ -24,15 +24,6 @@
 
 @implementation WOTemplate
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithURL:(NSURL *)_url rootElement:(WOElement *)_element {
   if ((self = [super init])) {
     self->url         = [_url     copy];
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOWrapperTemplateBuilder.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Templates/WOWrapperTemplateBuilder.m	Thu Sep 20 18:19:17 2012
@@ -70,15 +70,8 @@ static BOOL logScriptAdditions   = NO;
 static NSStringEncoding parserEncoding;
 static NSDictionary *defaultAssocMap = nil;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   AssocClass = [WOAssociation class];
   StrClass   = [NSString      class];
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOxElemBuilder.m.orig	Wed Sep 19 18:37:18 2012
+++ sope-appserver/NGObjWeb/Templates/WOxElemBuilder.m	Thu Sep 20 18:54:37 2012
@@ -109,9 +109,6 @@ static Class         CompoundElemClass = Nil;
 static NSNumber      *yesNum   = nil;
 static WOAssociation *yesAssoc = nil;
 
-+ (int)version {
-  return 1;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
$OpenBSD$
--- sope-appserver/NGObjWeb/Templates/WOxTemplateBuilder.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/Templates/WOxTemplateBuilder.m	Thu Sep 20 18:19:30 2012
@@ -32,15 +32,7 @@
 static BOOL  profLoading = NO;
 static Class DateClass = Nil;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   if (DateClass == Nil)
     DateClass = [NSDate class];
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/WOAdaptor.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOAdaptor.m	Thu Sep 20 18:57:03 2012
@@ -31,10 +31,6 @@
 
 @implementation WOAdaptor
 
-+ (int)version {
-  return 1;
-}
-
 - (id)initWithName:(NSString *)_name arguments:(NSDictionary *)_args
   application:(WOCoreApplication *)_application
 {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOApplication.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOApplication.m	Thu Sep 20 18:22:33 2012
@@ -68,10 +68,6 @@ static NSString *defaultCompRqHandlerClassName = @"OWV
 static NSString *defaultCompRqHandlerClassName = @"WOComponentRequestHandler";
 #endif
 
-+ (int)version {
-  return [super version] + 5 /* v6 */;
-}
-
 /* old license checks */
 
 - (NSCalendarDate *)appExpireDate {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOChildComponentReference.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOChildComponentReference.m	Thu Sep 20 18:22:50 2012
@@ -35,14 +35,7 @@
 static int profileComponents = -1;
 static Class NSDateClass = Nil;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   if (profileComponents == -1) {
     profileComponents = [[[NSUserDefaults standardUserDefaults]
                                           objectForKey:@"WOProfileComponents"]
$OpenBSD$
--- sope-appserver/NGObjWeb/WOComponentDefinition.m.orig	Wed Oct 10 15:16:31 2012
+++ sope-appserver/NGObjWeb/WOComponentDefinition.m	Sat Oct 13 13:12:45 2012
@@ -175,10 +175,6 @@ static BOOL enableClassLessComponents = NO;
 static BOOL enableWOOFiles            = NO;
 static NSArray *woxExtensions = nil;
 
-+ (int)version {
-  return 4;
-}
-
 + (void)initialize {
   static BOOL isInitialized = NO;
   NSUserDefaults *ud;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOComponentFault.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOComponentFault.m	Thu Sep 20 18:57:20 2012
@@ -28,10 +28,6 @@
 
 @implementation WOComponentFault
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithResourceManager:(WOResourceManager *)_rm
   pageName:(NSString *)_name
   languages:(NSArray *)_langs
$OpenBSD$
--- sope-appserver/NGObjWeb/WOComponentRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOComponentRequestHandler.m	Thu Sep 20 18:23:20 2012
@@ -40,15 +40,6 @@
 
 @implementation WOComponentRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (WOResponse *)restoreSessionWithID:(NSString *)_sid
   inContext:(WOContext *)_ctx
 {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOComponent.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOComponent.m	Thu Sep 20 18:23:08 2012
@@ -67,10 +67,6 @@ static BOOL  abortOnAwakeComponentInCtxDealloc = NO;
 static BOOL  abortOnMissingCtx                 = NO;
 static BOOL  wakeupPageOnCreation              = NO;
 
-+ (int)version {
-  // TODO: is really v4 for baseURL/cycleContext ivar changes
-  return [super version] + 0 /* v2 */;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
@@ -78,10 +74,6 @@ static BOOL  wakeupPageOnCreation              = NO;
 
   if (didInit) return;
   didInit = YES;
-  
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
   ud = [NSUserDefaults standardUserDefaults];
   lm = [NGLoggerManager defaultLoggerManager];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOContext.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOContext.m	Thu Sep 20 18:54:16 2012
@@ -49,10 +49,6 @@ static Class WOAppClass = Nil;
 
 @implementation WOContext
 
-+ (int)version {
-  return 9;
-}
-
 static Class    WOContextClass       = Nil;
 static Class    MutableStrClass      = Nil;
 static int      contextCount         = 0;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOCoreApplication.m.orig	Wed Sep 19 18:34:58 2012
+++ sope-appserver/NGObjWeb/WOCoreApplication.m	Thu Sep 20 18:53:18 2012
@@ -76,10 +76,6 @@ static Class    NSDateClass      = Nil;
 static NGLogger *logger          = nil;
 static NGLogger *perfLogger      = nil;
 
-+ (int)version {
-  return 1;
-}
-
 NGObjWeb_DECLARE id WOApp = nil;
 static NSMutableArray *activeApps = nil; // THREAD
 
$OpenBSD$
--- sope-appserver/NGObjWeb/WODirectActionRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WODirectActionRequestHandler.m	Thu Sep 20 18:23:32 2012
@@ -43,15 +43,8 @@ static Class NSDateClass = Nil;
 
 @implementation WODirectActionRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
   NSDateClass = [NSDate class];
   perflog = [ud boolForKey:@"WOProfileDirectActionRequestHandler"];
$OpenBSD$
--- sope-appserver/NGObjWeb/WODirectAction.m.orig	Wed Sep 19 18:41:26 2012
+++ sope-appserver/NGObjWeb/WODirectAction.m	Thu Sep 20 18:55:57 2012
@@ -35,10 +35,6 @@
 
 @implementation WODirectAction
 
-+ (int)version {
-  return 4;
-}
-
 - (id)initWithRequest:(WORequest *)_request {
   if ((self = [super init]) != nil) {
   }
$OpenBSD$
--- sope-appserver/NGObjWeb/WODynamicElement.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WODynamicElement.m	Thu Sep 20 18:23:51 2012
@@ -39,19 +39,11 @@ typedef struct _WOExtraAttrStruct  {
 
 @implementation WODynamicElement
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 static Class FormClass        = Nil;
 static Class FormElementClass = Nil;
 
 + (void)initialize {
   static BOOL isInitialized = NO;
-  
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   if (!isInitialized) {
     isInitialized = YES;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOElement.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOElement.m	Thu Sep 20 18:57:10 2012
@@ -26,10 +26,6 @@
 
 @implementation WOElement
 
-+ (int)version {
-  return 2;
-}
-
 static id numStrings[100];
 
 + (void)initialize {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOFileSessionStore.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOFileSessionStore.m	Thu Sep 20 18:24:06 2012
@@ -55,15 +55,6 @@
 
 static BOOL logExpire = YES;
 
-+ (int)version {
-  return [super version] + 0;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithSessionPath:(NSString *)_path {
   NSFileManager *fm;
   BOOL isDir;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOHTTPConnection.m.orig	Wed Sep 19 18:35:39 2012
+++ sope-appserver/NGObjWeb/WOHTTPConnection.m	Thu Sep 20 18:53:29 2012
@@ -66,10 +66,6 @@ static NSArray  *noProxy     = nil;
 static BOOL doDebug   = NO;
 static BOOL logStream = NO;
 
-+ (int)version {
-  return 3;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   static BOOL didInit = NO;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpAdaptor.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpAdaptor.m	Thu Sep 20 18:24:21 2012
@@ -79,9 +79,6 @@ static BOOL     debugOn                      = NO;
   return perfLogger != nil ? YES : NO;
 }
 
-+ (int)version {
-  return [super version] + 1 /* v2 */;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
@@ -89,10 +86,6 @@ static BOOL     debugOn                      = NO;
 
   if (didInit) return;
   didInit = YES;
-
-  NSAssert2([super version] == 1,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
   ud = [NSUserDefaults standardUserDefaults];
   lm = [NGLoggerManager defaultLoggerManager];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpTransaction.m.orig	Wed Sep 19 18:45:46 2012
+++ sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpTransaction.m	Thu Sep 20 18:57:58 2012
@@ -100,9 +100,6 @@ static NGLogger *debugLogger       = nil;
 static NGLogger *perfLogger        = nil;
 static NGLogger *transActionLogger = nil;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOMailDelivery.m.orig	Wed Sep 19 18:40:49 2012
+++ sope-appserver/NGObjWeb/WOMailDelivery.m	Thu Sep 20 18:55:22 2012
@@ -26,10 +26,6 @@
 
 @implementation WOMailDelivery
 
-+ (int)version {
-  return 2;
-}
-
 WOMailDelivery *sharedInstance = nil;
 
 + (id)sharedInstance {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOMessage.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOMessage.m	Thu Sep 20 18:56:55 2012
@@ -48,7 +48,7 @@ static WOMessageProfileInfo profiletot = { 0, 0, 0, 0,
 
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  
+   
   if (NSStringClass == Nil)
     NSStringClass = [NSString class];
   
@@ -83,10 +83,6 @@ static __inline__ NSMutableData *_checkBody(WOMessage 
       [self->content methodForSelector:@selector(appendBytes:length:)];
   }
   return self->content;
-}
-
-+ (int)version {
-  return 5;
 }
 
 + (void)setDefaultEncoding:(NSStringEncoding)_encoding {
$OpenBSD$
--- sope-appserver/NGObjWeb/WOPageRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOPageRequestHandler.m	Thu Sep 20 18:24:39 2012
@@ -50,14 +50,8 @@ static BOOL  debugOn             = NO;
 
 @implementation WOPageRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* 2 */;
-}
 + (void)initialize {
   NSUserDefaults *ud;
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
 
   NSDateClass = [NSDate class];
   ud = [NSUserDefaults standardUserDefaults];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOProxyRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOProxyRequestHandler.m	Thu Sep 20 18:24:51 2012
@@ -28,15 +28,6 @@
 
 @implementation WOProxyRequestHandler
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithHost:(NSString *)_hostName onPort:(unsigned int)_port {
   if ((self = [super init])) {
     self->client = 
$OpenBSD$
--- sope-appserver/NGObjWeb/WORequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WORequestHandler.m	Thu Sep 20 18:56:06 2012
@@ -51,9 +51,6 @@ static Class    NSDateClass        = Nil;
 static NGLogger *logger            = nil;
 static NGLogger *perfLogger        = nil;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults  *ud;
   NGLoggerManager *lm;
@@ -62,7 +59,6 @@ static NGLogger *perfLogger        = nil;
   if (didInit)
     return;
   didInit = YES;
-
   NSDateClass = [NSDate class];
   
   lm         = [NGLoggerManager defaultLoggerManager];
$OpenBSD$
--- sope-appserver/NGObjWeb/WORequest.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WORequest.m	Thu Sep 20 18:25:03 2012
@@ -55,10 +55,6 @@ NGObjWeb_DECLARE NSString *WONoSelectionString       =
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return [super version] + 2 /* v7 */;
-}
-
 + (void)initialize {
   static BOOL isInitialized = NO;
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
@@ -67,10 +63,6 @@ static BOOL debugOn = NO;
 
   if (isInitialized) return;
   isInitialized = YES;
-  
-  NSAssert2([super version] == 5,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   debugOn = [WOApplication isDebuggingEnabled];
     
$OpenBSD$
--- sope-appserver/NGObjWeb/WOResourceManager.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOResourceManager.m	Thu Sep 20 18:53:06 2012
@@ -77,10 +77,6 @@
 
 @implementation WOResourceManager
 
-+ (int)version {
-  return 4;
-}
-
 static Class    UrlClass             = Nil;
 static NSString *resourcePrefix      = @"";
 static NSString *rapidTurnAroundPath = nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOResourceRequestHandler.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOResourceRequestHandler.m	Thu Sep 20 18:25:15 2012
@@ -40,15 +40,6 @@
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (WOResponse *)_handleWebServerResourcesRequest:(WORequest *)_request {
   WOApplication *app;
   NSArray       *handlerPath = nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOResponse.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOResponse.m	Thu Sep 20 18:25:28 2012
@@ -34,18 +34,12 @@ static unsigned int  OWMinimumZipSize  = 1024;
 static BOOL          dontZip  = NO;
 static BOOL          debugZip = NO;
 
-+ (int)version {
-  return [super version] + 1 /* v6 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   static BOOL didInit = NO;
   if (didInit) return;
   didInit = YES;
-  NSAssert2([super version] == 5,
-	    @"invalid superclass (%@) version %i !",
-	    NSStringFromClass([self superclass]), [super version]);
-  
+
   dontZip  = [ud boolForKey:@"WODontZipResponse"];
   debugZip = [ud boolForKey:@"WODebugZipResponse"];
 }
$OpenBSD$
--- sope-appserver/NGObjWeb/WOServerSessionStore.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOServerSessionStore.m	Thu Sep 20 18:25:41 2012
@@ -60,15 +60,6 @@
 
 static BOOL logExpiredSessions = NO;
 
-+ (int)version {
-  return [super version] + 0;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)init {
   if ((self = [super init])) {
     self->idToSession = NSCreateMapTable(NSObjectMapKeyCallBacks,
$OpenBSD$
--- sope-appserver/NGObjWeb/WOSessionStore.m.orig	Wed Sep  5 18:34:20 2012
+++ sope-appserver/NGObjWeb/WOSessionStore.m	Thu Sep 20 18:57:35 2012
@@ -33,10 +33,6 @@
 
 @implementation WOSessionStore
 
-+ (int)version {
-  return 2;
-}
-
 + (WOSessionStore *)serverSessionStore {
   return
     [[[NSClassFromString(@"WOServerSessionStore") alloc] init] autorelease];
$OpenBSD$
--- sope-appserver/NGObjWeb/WOSession.m.orig	Wed Sep 19 18:36:09 2012
+++ sope-appserver/NGObjWeb/WOSession.m	Thu Sep 20 18:53:48 2012
@@ -60,10 +60,6 @@ NGObjWeb_DECLARE
 
 @implementation WOSession
 
-+ (int)version {
-  return 5;
-}
-
 static int   profileComponents = -1;
 static int   logPageCache      = -1;
 static Class NSDateClass = Nil;
$OpenBSD$
--- sope-appserver/NGObjWeb/WOSimpleHTTPParser.m.orig	Wed Sep 19 18:36:41 2012
+++ sope-appserver/NGObjWeb/WOSimpleHTTPParser.m	Thu Sep 20 18:53:36 2012
@@ -35,9 +35,6 @@ static BOOL  heavyDebugOn   = NO;
 static int   fileIOBoundary = 0;
 static int   maxUploadSize  = 0;
 
-+ (int)version {
-  return 1;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-appserver/NGObjWeb/WOStatisticsStore.m.orig	Wed Sep 19 18:45:14 2012
+++ sope-appserver/NGObjWeb/WOStatisticsStore.m	Thu Sep 20 18:55:32 2012
@@ -59,10 +59,6 @@ static Class NSNumberClass    = Nil;
 static Class NSStringClass    = Nil;
 static BOOL  runMultithreaded = NO;
 
-+ (int)version {
-  return 1;
-}
-
 + (void)initialize {
   NSNumberClass = [NSNumber class];
   NSStringClass = [NSString class];
$OpenBSD$
--- sope-appserver/WEExtensions/WECalendarField.m.orig	Wed Sep 19 19:03:19 2012
+++ sope-appserver/WEExtensions/WECalendarField.m	Thu Sep 20 18:26:20 2012
@@ -27,14 +27,7 @@ static Class StrClass = Nil;
 
 @implementation WECalendarField
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 + (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   StrClass = [NSString class];
 }
 
$OpenBSD$
--- sope-appserver/WEExtensions/WEDragContainer.m.orig	Wed Sep 19 18:54:19 2012
+++ sope-appserver/WEExtensions/WEDragContainer.m	Thu Sep 20 18:26:32 2012
@@ -58,10 +58,6 @@
 
 static BOOL debugTakeValues = NO;
 
-+ (int)version {
-  return 0 + [super version];
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/WEExtensions/WEDropContainer.m.orig	Wed Sep 19 18:49:20 2012
+++ sope-appserver/WEExtensions/WEDropContainer.m	Thu Sep 20 18:26:44 2012
@@ -71,10 +71,6 @@
 
 @implementation WEDropContainer
 
-+ (int)version {
-  return 0 + [super version];
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WEExtensions/WEEpozEditor.m.orig	Wed Sep 19 18:50:56 2012
+++ sope-appserver/WEExtensions/WEEpozEditor.m	Thu Sep 20 18:26:55 2012
@@ -52,15 +52,6 @@
 
 @implementation WEEpozEditor
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_root {
$OpenBSD$
--- sope-appserver/WEExtensions/WEPageLink.m.orig	Wed Sep 19 18:52:09 2012
+++ sope-appserver/WEExtensions/WEPageLink.m	Thu Sep 20 18:27:08 2012
@@ -54,15 +54,6 @@
 
 @implementation WEPageLink
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/WEExtensions/WEPageView.m.orig	Wed Sep 19 18:58:04 2012
+++ sope-appserver/WEExtensions/WEPageView.m	Thu Sep 20 18:27:25 2012
@@ -117,10 +117,6 @@ static NSNumber *YesNumber = nil;
   if (YesNumber == nil) YesNumber = [[NSNumber numberWithBool:YES] retain];
 }
 
-+ (int)version {
-  return [super version] + 0;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
@@ -634,10 +630,6 @@ static inline NSString *WEPageLabelForKey(NSString *_k
 @end /* WEPageView */
 
 @implementation WEPageItem
-
-+ (int)version {
-  return [super version] + 0;
-}
 
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
$OpenBSD$
--- sope-appserver/WEExtensions/WEResourceManager.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-appserver/WEExtensions/WEResourceManager.m	Thu Sep 20 18:27:44 2012
@@ -162,19 +162,12 @@ static NSString *themesDirName = @"Themes";
   return ma;
 }
 
-+ (int)version {
-  return [super version] + 0 /* v4 */;
-}
 + (void)initialize {
   static BOOL isInitialized = NO;
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   if (isInitialized) return;
   isInitialized = YES;
   
-  NSAssert2([super version] == 4,
-	    @"invalid superclass (%@) version %i !",
-	    NSStringFromClass([self superclass]), [super version]);
-
   null = [[NSNull null] retain];
   
   if ((debugOn = [ud boolForKey:@"WEResourceManagerDebugEnabled"]))
$OpenBSD$
--- sope-appserver/WEExtensions/WETabItem.m.orig	Wed Sep 19 18:53:03 2012
+++ sope-appserver/WEExtensions/WETabItem.m	Thu Sep 20 18:27:57 2012
@@ -38,9 +38,6 @@ extern NSString *WETabView_COLLECT;
 
 static Class StrClass = Nil;
 
-+ (int)version {
-  return [super version] + 0;
-}
 + (void)initialize {
   StrClass = [NSString class];
 }
$OpenBSD$
--- sope-appserver/WEExtensions/WETabView.m.orig	Wed Sep 19 18:55:46 2012
+++ sope-appserver/WEExtensions/WETabView.m	Thu Sep 20 18:28:49 2012
@@ -45,10 +45,6 @@ static NSNumber *YesNumber;
     YesNumber = [[NSNumber numberWithBool:YES] retain];
 }
 
-+ (int)version {
-  return [super version] + 0;
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-appserver/WEExtensions/WETableCalcMatrix.m.orig	Wed Sep 19 18:48:02 2012
+++ sope-appserver/WEExtensions/WETableCalcMatrix.m	Thu Sep 20 18:52:57 2012
@@ -461,10 +461,6 @@ static NSNull *null = nil;
 
 @implementation WETableCalcMatrix
 
-+ (int)version {
-  return 0;
-}
-
 static inline MatrixEntry *entryAt(WETableCalcMatrix *self, unsigned x, 
 				   unsigned y) {
   return self->matrix +
$OpenBSD$
--- sope-appserver/WEExtensions/WETableView/WETableData.m.orig	Wed Sep 19 19:00:20 2012
+++ sope-appserver/WEExtensions/WETableView/WETableData.m	Thu Sep 20 18:28:14 2012
@@ -57,15 +57,6 @@
 
 @implementation WETableData
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)_initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_c
$OpenBSD$
--- sope-appserver/WEExtensions/WETableView/WETableView.m.orig	Wed Sep 19 19:01:29 2012
+++ sope-appserver/WEExtensions/WETableView/WETableView.m	Thu Sep 20 18:28:31 2012
@@ -57,14 +57,8 @@ static Class    StrClass   = Nil;
 static BOOL ShowNavigationAlways   = YES;
 static BOOL ShowNavigationInFooter = YES;
 
-+ (int)version {
-  return [super version] + 1 /* v3 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   StrClass = [NSString class];
   if (YesNumber == nil) YesNumber = [[NSNumber numberWithBool:YES] retain];
$OpenBSD$
--- sope-appserver/WOExtensions/JSAlertPanel.m.orig	Wed Sep 19 19:04:46 2012
+++ sope-appserver/WOExtensions/JSAlertPanel.m	Thu Sep 20 18:29:16 2012
@@ -44,15 +44,6 @@
 
 @implementation JSAlertPanel
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WOExtensions/JSConfirmPanel.m.orig	Wed Sep 19 19:05:53 2012
+++ sope-appserver/WOExtensions/JSConfirmPanel.m	Thu Sep 20 18:29:26 2012
@@ -45,15 +45,6 @@
 
 @implementation JSConfirmPanel
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WOExtensions/JSImageFlyover.m.orig	Wed Sep 19 19:07:07 2012
+++ sope-appserver/WOExtensions/JSImageFlyover.m	Thu Sep 20 18:29:40 2012
@@ -48,15 +48,6 @@
 
 @implementation JSImageFlyover
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-	    @"invalid superclass (%@) version %i !",
-	    NSStringFromClass([self superclass]), [super version]);
-}
-
 - (NSDictionary *)extractQueryParameters: (NSDictionary *)_set {
   NSMutableDictionary *paras = nil;
   NSMutableArray      *paraKeys = nil;
$OpenBSD$
--- sope-appserver/WOExtensions/JSModalWindow.m.orig	Wed Sep 19 19:08:08 2012
+++ sope-appserver/WOExtensions/JSModalWindow.m	Thu Sep 20 18:29:52 2012
@@ -54,15 +54,6 @@
 
 @implementation JSModalWindow
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WOExtensions/JSTextFlyover.m.orig	Wed Sep 19 19:10:24 2012
+++ sope-appserver/WOExtensions/JSTextFlyover.m	Thu Sep 20 18:30:04 2012
@@ -40,15 +40,6 @@
 
 @implementation JSTextFlyover
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_subs
$OpenBSD$
--- sope-appserver/WOExtensions/JSValidatedField.m.orig	Wed Sep 19 19:09:22 2012
+++ sope-appserver/WOExtensions/JSValidatedField.m	Thu Sep 20 18:30:17 2012
@@ -42,15 +42,6 @@
 
 @implementation JSValidatedField
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
   template:(WOElement *)_t
$OpenBSD$
--- sope-core/EOControl/EODataSource.m.orig	Sat Sep 15 10:53:53 2012
+++ sope-core/EOControl/EODataSource.m	Thu Sep 20 18:52:15 2012
@@ -25,10 +25,6 @@
 
 @implementation EODataSource
 
-+ (int)version {
-  return 1;
-}
-
 /* reflection */
 
 - (EOClassDescription *)classDescriptionForObjects {
$OpenBSD$
--- sope-core/NGExtensions/NGBundleManager.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-core/NGExtensions/NGBundleManager.m	Thu Sep 13 17:49:21 2012
@@ -615,7 +615,7 @@ static NSString *NGEnvVarPathSeparator = @":";
 
 // dependencies
 
-+ (NSInteger)version {
++ (int)version {
   return 2;
 }
 
$OpenBSD$
--- sope-core/NGExtensions/NGCustomFileManager.m.orig	Sat Sep 15 11:09:45 2012
+++ sope-core/NGExtensions/NGCustomFileManager.m	Thu Sep 20 18:31:08 2012
@@ -39,15 +39,6 @@ typedef struct {
 
 @implementation NGCustomFileManager
 
-+ (int)version {
-  return [super version] + 0 /* v0 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 0,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 /* customization */
 
 - (NSString *)makeAbsolutePath:(NSString *)_path {
$OpenBSD$
--- sope-core/NGExtensions/NGFileManager.m.orig	Sat Sep 15 11:11:47 2012
+++ sope-core/NGExtensions/NGFileManager.m	Thu Sep 20 18:52:02 2012
@@ -28,10 +28,6 @@
 
 static BOOL logPathOps = NO;
 
-+ (int)version {
-  return 0;
-}
-
 - (id)init {
   if ((self = [super init])) {
     self->cwd = @"/";
$OpenBSD$
--- sope-core/NGStreams/NGByteBuffer.m.orig	Sat Sep 15 10:51:02 2012
+++ sope-core/NGStreams/NGByteBuffer.m	Thu Sep 20 18:31:30 2012
@@ -44,10 +44,6 @@ static Class DataStreamClass = Nil;
   DataStreamClass   = NSClassFromString(@"NGDataStream");
 }
 
-+ (int)version {
-  return [super version] + 1;
-}
-
 + (id)byteBufferWithSource:(id<NGStream>)_source la:(unsigned)_la {
   if (_source            == nil)            return nil;
   if (*(Class *)_source == DataStreamClass) return _source;
$OpenBSD$
--- sope-core/NGStreams/NGCTextStream.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-core/NGStreams/NGCTextStream.m	Thu Sep 20 18:31:44 2012
@@ -42,10 +42,6 @@ NGStreams_DECLARE id<NGExtendedTextOutputStream> NGTex
 
 @implementation NGCTextStream
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
-
 // stdio
 
 NGStreams_DECLARE void NGInitTextStdio(void) {
@@ -81,9 +77,6 @@ static void _flushAtExit(void) {
 + (void)initialize {
   BOOL isInitialized = NO;
   if (!isInitialized) {
-    NSAssert2([super version] == 2,
-              @"invalid superclass (%@) version %i !",
-              NSStringFromClass([self superclass]), [super version]);
     isInitialized = YES;
 
     atexit(_flushAtExit);
$OpenBSD$
--- sope-core/NGStreams/NGDataStream.m.orig	Sat Sep 15 10:48:53 2012
+++ sope-core/NGStreams/NGDataStream.m	Thu Sep 20 18:31:20 2012
@@ -27,10 +27,6 @@
 
 @implementation NGDataStream
 
-+ (int)version {
-  return [super version] + 2;
-}
-
 + (id)dataStream {
   return [self streamWithData:[NSMutableData dataWithCapacity:1024]];
 }
$OpenBSD$
--- sope-core/NGStreams/NGInternetSocketDomain.m.orig	Sat Sep 15 11:09:01 2012
+++ sope-core/NGStreams/NGInternetSocketDomain.m	Thu Sep 20 18:52:36 2012
@@ -31,9 +31,6 @@
 
 static NGInternetSocketDomain *domain = nil;
 
-+ (int)version {
-  return 1;
-}
 + (void)initialize {
   if (domain == nil) domain = [[NGInternetSocketDomain alloc] init];
 }
$OpenBSD$
--- sope-core/NGStreams/NGSocket.m.orig	Wed Oct 10 15:16:31 2012
+++ sope-core/NGStreams/NGSocket.m	Sat Oct 13 13:34:10 2012
@@ -64,10 +64,6 @@
 static BOOL    isInitialized = NO;
 static WSADATA wsaData;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   if (!isInitialized) {
     isInitialized = YES;
$OpenBSD$
--- sope-core/NGStreams/NGTextStream.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-core/NGStreams/NGTextStream.m	Thu Sep 20 18:52:27 2012
@@ -24,10 +24,6 @@
 
 @implementation NGTextStream
 
-+ (int)version {
-  return 2;
-}
-
 - (void)dealloc {
   [self->lastException release];
   [super dealloc];
$OpenBSD$
--- sope-gdl1/GDLAccess/EOAdaptorDataSource.m.orig	Sat Sep 15 10:47:25 2012
+++ sope-gdl1/GDLAccess/EOAdaptorDataSource.m	Thu Sep 20 18:32:10 2012
@@ -98,15 +98,8 @@ static NSNotificationCenter *getNC(void ) {
 }
 
 + (void)initialize {
-  NSAssert2([super version] == 1,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   null = [[EONull null] retain];
   NSCalendarDateClass = [NSCalendarDate class];
-}
-+ (int)version {
-  return [super version] + 1; /* v2 */
 }
 
 - (id)initWithAdaptorName:(NSString *)_adName
$OpenBSD$
--- sope-gdl1/GDLAccess/EOModel.m.orig	Wed Sep 19 18:30:05 2012
+++ sope-gdl1/GDLAccess/EOModel.m	Thu Sep 20 18:51:42 2012
@@ -402,10 +402,6 @@ void EOModel_linkCategories(void) {
   return ents;
 }
 
-+ (int)version {
-  return 1;
-}
-
 /* description */
 
 - (NSString *)description {
$OpenBSD$
--- sope-gdl1/GDLAccess/EOSQLExpression.m.orig	Wed Sep 19 18:31:49 2012
+++ sope-gdl1/GDLAccess/EOSQLExpression.m	Thu Sep 20 18:51:33 2012
@@ -154,10 +154,6 @@ NSString *EOBindVariableValueKey       = @"value";
 
 @implementation EOSQLExpression
 
-+ (int)version {
-  return 1;
-}
-
 + (void)initialize {
   if (null == nil) null = [[NSNull null] retain];
 }
$OpenBSD$
--- sope-ldap/NGLdap/NGLdapFileManager.m.orig	Sat Sep 15 10:45:48 2012
+++ sope-ldap/NGLdap/NGLdapFileManager.m	Thu Sep 20 18:32:23 2012
@@ -30,15 +30,6 @@
 
 @implementation NGLdapFileManager
 
-+ (int)version {
-  return [super version] + 0 /* v0 */;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 0,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 static NSString *LDAPObjectClassKey = @"objectclass";
 static NSArray  *objectClassAttrs = nil;
 static NSArray  *fileInfoAttrs    = nil;
$OpenBSD$
--- sope-mime/NGImap4/NGImap4Client.m.orig	Wed Sep 19 18:08:29 2012
+++ sope-mime/NGImap4/NGImap4Client.m	Thu Sep 20 18:44:31 2012
@@ -131,9 +131,6 @@ static NSMutableDictionary *namespaces;
   return self->useTLS;
 }
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   static BOOL didInit = NO;
$OpenBSD$
--- sope-mime/NGImap4/NGImap4FileManager.m.orig	Wed Sep  5 18:34:21 2012
+++ sope-mime/NGImap4/NGImap4FileManager.m	Thu Sep 20 18:32:49 2012
@@ -44,15 +44,8 @@
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return [super version] + 0 /* v0 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  
-  NSAssert2([super version] == 0,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   
   if ((debugOn = [ud boolForKey:@"NGImap4FileManagerDebugEnabled"]))
     NSLog(@"NGImap4FileManager debugging is enabled.");
$OpenBSD$
--- sope-mime/NGImap4/NGImap4Message.m.orig	Wed Sep 19 18:07:40 2012
+++ sope-mime/NGImap4/NGImap4Message.m	Thu Sep 20 18:44:21 2012
@@ -61,10 +61,6 @@ static NSArray           *rfc822NameArray  = nil;
 static BOOL              debugFlags        = NO;
 static BOOL              ImapDebugEnabled  = NO;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   static BOOL didInit = NO;
$OpenBSD$
--- sope-mime/NGMail/NGMBoxReader.m.orig	Wed Sep 19 18:14:26 2012
+++ sope-mime/NGMail/NGMBoxReader.m	Thu Sep 20 18:46:19 2012
@@ -27,10 +27,6 @@
 
 @implementation NGMBoxReader
 
-+ (int)version {
-  return 2;
-}
-
 static inline int __readByte(NGMBoxReader *self);
 static inline void
 __appendByte(NGMBoxReader *self, NSMutableData *_data, IMP _readBytes, int _c);
$OpenBSD$
--- sope-mime/NGMail/NGMailAddressList.m.orig	Wed Sep 19 18:10:20 2012
+++ sope-mime/NGMail/NGMailAddressList.m	Thu Sep 20 18:45:07 2012
@@ -24,10 +24,6 @@
 
 @implementation NGMailAddressList
 
-+ (int)version {
-  return 2;
-}
-
 + (id)mailAddressListWithAddresses:(NSSet *)_addresses
   groupName:(NSString *)_groupName {
   return [[[NGMailAddressList alloc] initWithAddresses:_addresses
$OpenBSD$
--- sope-mime/NGMail/NGMailAddressParser.m.orig	Wed Sep 19 18:18:20 2012
+++ sope-mime/NGMail/NGMailAddressParser.m	Thu Sep 20 18:46:47 2012
@@ -43,10 +43,6 @@
 static Class    StrClass = Nil;
 static NSNumber *yesNum  = nil;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   if (yesNum == nil) yesNum = [[NSNumber numberWithBool:YES] retain];
   StrClass = [NSString class];
$OpenBSD$
--- sope-mime/NGMail/NGMailAddress.m.orig	Wed Sep 19 18:17:00 2012
+++ sope-mime/NGMail/NGMailAddress.m	Thu Sep 20 18:46:38 2012
@@ -24,10 +24,6 @@
 
 @implementation NGMailAddress
 
-+ (int)version {
-  return 2;
-}
-
 + (id)mailAddressWithAddress:(NSString *)_address
   displayName:(NSString *)_owner
   route:(NSString *)_route
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageBodyGenerator.m	Thu Sep 20 18:34:09 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeMessageBodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 /* encoding data */
 
 - (NSData *)encodeData:(NSData *)_data
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageGenerator.m	Thu Sep 20 18:34:26 2012
@@ -29,16 +29,9 @@
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
 
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-  
   debugOn = [ud boolForKey:@"NGMimeGeneratorDebugEnabled"];
   if (debugOn)
     NSLog(@"WARNING[%@]: NGMimeGeneratorDebugEnabled is enabled!", self);
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageMultipartBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageMultipartBodyGenerator.m	Thu Sep 20 18:34:42 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeMessageMultipartBodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id<NGMimePartGenerator>)multipartBodyGenerator:(NGMimeBodyGenerator *)_gen
   generatorForPart:(id<NGMimePart>)_part 
 {
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageParser.m	Thu Sep 20 18:35:03 2012
@@ -77,13 +77,7 @@ static Class NGMimeMessageParserClass = Nil; 
 
 static Class NSStringClass = Nil;
 
-+ (int)version {
-  return 3;
-}
 + (void)initialize {
-  NSAssert2([super version] == 3,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   if (NSStringClass == Nil)
     NSStringClass = [NSString class];
 }
@@ -121,15 +115,6 @@ static Class NSStringClass = Nil;
 
 
 @implementation NGMimeRfc822BodyParser
-
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
 
 - (id)parseBodyOfPart:(id<NGMimePart>)_part data:(NSData *)_data
   delegate:(id)_d
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageRfc822BodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageRfc822BodyGenerator.m	Thu Sep 20 18:33:41 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeMessageRfc822BodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id<NGMimePartGenerator>)generatorForPart:(id<NGMimePart>)_part {
   id gen;
 
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessageTextBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMail/NGMimeMessageTextBodyGenerator.m	Thu Sep 20 18:33:08 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeMessageTextBodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (NSData *)encodeData:(NSData *)_data
   forPart:(id<NGMimePart>)_part
   additionalHeaders:(NGMutableHashMap *)_addHeaders
$OpenBSD$
--- sope-mime/NGMail/NGMimeMessage.m.orig	Wed Sep 19 18:13:42 2012
+++ sope-mime/NGMail/NGMimeMessage.m	Thu Sep 20 18:45:53 2012
@@ -27,19 +27,15 @@
 static NGMimeType *defaultTextType = nil;
 static NGMimeType *defaultDataType = nil;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   static BOOL isInitialized = NO;
   if (!isInitialized) {
     isInitialized = YES;
     
-    defaultTextType = 
-      [[NGMimeType mimeType:@"text/plain; charset=us-ascii"] retain];
-    defaultDataType = 
-      [[NGMimeType mimeType:@"application/octet-stream"] retain];
+  defaultTextType = 
+    [[NGMimeType mimeType:@"text/plain; charset=us-ascii"] retain];
+  defaultDataType = 
+    [[NGMimeType mimeType:@"application/octet-stream"] retain];
   }
 }
   
$OpenBSD$
--- sope-mime/NGMail/NGPop3Client.m.orig	Wed Sep 19 18:15:50 2012
+++ sope-mime/NGMail/NGPop3Client.m	Thu Sep 20 18:46:28 2012
@@ -27,10 +27,6 @@
 
 @implementation NGPop3Client
 
-+ (int)version {
-  return 2;
-}
-
 + (id)pop3Client {
   NGActiveSocket *s;
   
$OpenBSD$
--- sope-mime/NGMail/NGPop3Support.m.orig	Wed Sep 19 18:11:22 2012
+++ sope-mime/NGMail/NGPop3Support.m	Thu Sep 20 18:45:39 2012
@@ -25,10 +25,6 @@
 
 @implementation NGPop3Response
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithLine:(NSString *)_line {
   if ((self = [super init])) {
     self->line = [_line copy];
@@ -67,10 +63,6 @@
 
 @implementation NGPop3MessageInfo
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithNumber:(int)_num size:(int)_size client:(NGPop3Client *)_client{
   if ((self = [super init])) {
     self->messageNumber = _num;
@@ -114,10 +106,6 @@
 
 @implementation NGPop3MailDropEnumerator
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithMessageInfoEnumerator:(NSEnumerator *)_infos {
   self->msgInfos = [_infos retain];
   return self;
@@ -148,17 +136,9 @@
 
 @implementation NGPop3Exception
 
-+ (int)version {
-  return 2;
-}
-
 @end /* NGPop3Exception */
 
 @implementation NGPop3StateException
-
-+ (int)version {
-  return 2;
-}
 
 - (id)init {
   return [self initWithClient:nil requiredState:0];
$OpenBSD$
--- sope-mime/NGMail/NGSmtpClient.m.orig	Wed Sep 19 18:08:59 2012
+++ sope-mime/NGMail/NGSmtpClient.m	Thu Sep 20 18:44:42 2012
@@ -106,10 +106,6 @@
 
 @implementation NGSmtpClient
 
-+ (int)version {
-  return 2;
-}
-
 + (id)smtpClient {
   NGActiveSocket *s;
   s = [NGActiveSocket socketInDomain:[NGInternetSocketDomain domain]];
$OpenBSD$
--- sope-mime/NGMail/NGSmtpSupport.m.orig	Wed Sep 19 18:09:38 2012
+++ sope-mime/NGMail/NGSmtpSupport.m	Thu Sep 20 18:44:54 2012
@@ -117,10 +117,6 @@ NSString *NGSmtpDescriptionForReplyCode(NGSmtpReplyCod
 
 @implementation NGSmtpResponse
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithCode:(NGSmtpReplyCode)_code text:(NSString *)_text {
   if ((self = [super init])) {
     self->code = _code;
$OpenBSD$
--- sope-mime/NGMime/NGMimeAddressHeaderFieldGenerator.m.orig	Wed Sep 19 18:25:12 2012
+++ sope-mime/NGMime/NGMimeAddressHeaderFieldGenerator.m	Thu Sep 20 18:48:24 2012
@@ -44,10 +44,6 @@
 
 static int UseLFSeperatedAddressEntries = -1;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
 
$OpenBSD$
--- sope-mime/NGMime/NGMimeBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeBodyGenerator.m	Thu Sep 20 18:47:08 2012
@@ -28,9 +28,6 @@
 
 static BOOL debugOn = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-mime/NGMime/NGMimeBodyParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeBodyParser.m	Thu Sep 20 18:36:22 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeBodyParser
 
-+ (int)version {
-  return 2;
-}
-
 - (id)parseBodyOfPart:(id<NGMimePart>)_part
   data:(NSData *)_data
   delegate:(id)_d
@@ -43,15 +39,9 @@
 
 static int UseFoundationStringEncodingForMimeText = -1;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   if (UseFoundationStringEncodingForMimeText == -1) {
     UseFoundationStringEncodingForMimeText =
       [ud boolForKey:@"UseFoundationStringEncodingForMimeText"]?1:0;
$OpenBSD$
--- sope-mime/NGMime/NGMimeBodyPartParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeBodyPartParser.m	Thu Sep 20 18:36:34 2012
@@ -25,15 +25,6 @@
 
 @implementation NGMimeBodyPartParser
 
-+ (int)version {
-  return 3;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 3,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (NGMimeType *)defaultContentTypeForPart:(id<NGMimePart>)_part {
   return [NGMimeType mimeType:@"text/plain"];
 }
$OpenBSD$
--- sope-mime/NGMime/NGMimeBodyPart.m.orig	Wed Sep 19 18:21:13 2012
+++ sope-mime/NGMime/NGMimeBodyPart.m	Thu Sep 20 18:47:37 2012
@@ -27,10 +27,6 @@
 
 @implementation NGMimeBodyPart
 
-+ (int)version {
-  return 2;
-}
-
 + (id)bodyPartWithHeader:(NGHashMap *)_header {
   return [[[self alloc] initWithHeader:_header] autorelease];
 }
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentDispositionHeaderFieldGenerator.m.orig	Wed Sep 19 18:20:06 2012
+++ sope-mime/NGMime/NGMimeContentDispositionHeaderFieldGenerator.m	Thu Sep 20 18:48:04 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeContentDispositionHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentDispositionHeaderFieldParser.m.orig	Wed Sep 19 18:25:43 2012
+++ sope-mime/NGMime/NGMimeContentDispositionHeaderFieldParser.m	Thu Sep 20 18:50:16 2012
@@ -29,9 +29,6 @@
 static BOOL StripLeadingSpaces = NO;
 static BOOL MimeLogEnabled     = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   StripLeadingSpaces = [self doesStripLeadingSpaces];
   MimeLogEnabled     = [self isMIMELogEnabled];
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentLengthHeaderFieldGenerator.m.orig	Wed Sep 19 18:28:22 2012
+++ sope-mime/NGMime/NGMimeContentLengthHeaderFieldGenerator.m	Thu Sep 20 18:49:33 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeContentLengthHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentLengthHeaderFieldParser.m.orig	Wed Sep 19 18:19:31 2012
+++ sope-mime/NGMime/NGMimeContentLengthHeaderFieldParser.m	Thu Sep 20 18:47:27 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeContentLengthHeaderFieldParser
 
-+ (int)version {
-  return 2;
-}
-
 - (id)parseValue:(id)_data ofHeaderField:(NSString *)_field {
   const char *buf, *ptr;
     
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentTypeHeaderFieldGenerator.m.orig	Wed Sep 19 18:27:50 2012
+++ sope-mime/NGMime/NGMimeContentTypeHeaderFieldGenerator.m	Thu Sep 20 18:48:44 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeContentTypeHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeContentTypeHeaderFieldParser.m.orig	Wed Sep 19 18:18:48 2012
+++ sope-mime/NGMime/NGMimeContentTypeHeaderFieldParser.m	Thu Sep 20 18:47:18 2012
@@ -29,9 +29,6 @@
 static BOOL StripLeadingSpaces = NO;
 static BOOL MimeLogEnabled     = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   StripLeadingSpaces = [self doesStripLeadingSpaces];
   MimeLogEnabled     = [self isMIMELogEnabled];
$OpenBSD$
--- sope-mime/NGMime/NGMimeExceptions.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeExceptions.m	Thu Sep 20 18:35:26 2012
@@ -24,10 +24,6 @@
 
 @implementation NGMimeException
 
-+ (int)version {
-  return 2;
-}
-
 - (id)init {
   return [self initWithReason:@"a MIME exception occured"];
 }
@@ -35,15 +31,6 @@
 @end /* NGMimeException */
 
 @implementation NGMimeParserException
-
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
 
 - (id)init {
   return [self initWithReason:@"a MIME exception occured during parsing"];
$OpenBSD$
--- sope-mime/NGMime/NGMimeFileData.m.orig	Wed Sep 12 11:32:13 2012
+++ sope-mime/NGMime/NGMimeFileData.m	Wed Sep 12 11:32:30 2012
@@ -119,7 +119,7 @@ static unsigned      tmpmask  = 0600;
   return [[self _data] bytes];
 }
 
-- (unsigned int)length {
+- (NSUInteger)length {
   if (self->length == -1) {
     self->length = [[[[NSFileManager defaultManager]
                                      fileAttributesAtPath:self->path
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFieldGeneratorSet.m.orig	Wed Sep 19 18:27:08 2012
+++ sope-mime/NGMime/NGMimeHeaderFieldGeneratorSet.m	Thu Sep 20 18:50:04 2012
@@ -26,10 +26,6 @@
 
 @implementation NGMimeHeaderFieldGeneratorSet
 
-+ (int)version {
-  return 2;
-}
-
 static NGMimeHeaderFieldGeneratorSet *rfc822Set = nil;
 
 + (id)headerFieldGenerator {
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFieldGenerator.m.orig	Wed Sep 19 18:17:38 2012
+++ sope-mime/NGMime/NGMimeHeaderFieldGenerator.m	Thu Sep 20 18:46:56 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 + (id)headerFieldGenerator {
   return [[[self alloc] init] autorelease];
 }
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFieldParserSet.m.orig	Wed Sep 19 18:26:07 2012
+++ sope-mime/NGMime/NGMimeHeaderFieldParserSet.m	Thu Sep 20 18:48:35 2012
@@ -28,10 +28,6 @@
 
 @implementation NGMimeHeaderFieldParserSet
 
-+ (int)version {
-  return 2;
-}
-
 static NGMimeHeaderFieldParserSet *rfc822set = nil;
 
 + (id)headerFieldParserSet {
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFieldParser.m.orig	Wed Sep 19 18:20:41 2012
+++ sope-mime/NGMime/NGMimeHeaderFieldParser.m	Thu Sep 20 18:48:55 2012
@@ -45,10 +45,6 @@ static int StripLeadingSpaces = -1;
   return StripLeadingSpaces ? YES : NO;
 }
 
-+ (int)version {
-  return 2;
-}
-
 - (NSString *)removeCommentsFromValue:(NSString *)_rawValue {
   unsigned int len = [_rawValue length];
   unichar      bytes[len + 1];
$OpenBSD$
--- sope-mime/NGMime/NGMimeHeaderFields.m.orig	Wed Sep 19 18:26:41 2012
+++ sope-mime/NGMime/NGMimeHeaderFields.m	Thu Sep 20 18:49:21 2012
@@ -31,10 +31,6 @@ NGMime_DECLARE NSString *NGMimeContentDispositionFormT
 
 static int MimeLogEnabled = -1;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-mime/NGMime/NGMimeMultipartBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeMultipartBodyGenerator.m	Thu Sep 20 18:35:15 2012
@@ -34,16 +34,9 @@ static Class NGMimeFileDataClass   = Nil;
 static Class NGMimeJoinedDataClass = Nil;
 static BOOL  debugOn = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-
   NGMimeFileDataClass   = [NGMimeFileData class];
   NGMimeJoinedDataClass = [NGMimeJoinedData class];
   
$OpenBSD$
--- sope-mime/NGMime/NGMimeMultipartBodyParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeMultipartBodyParser.m	Thu Sep 20 18:36:06 2012
@@ -29,15 +29,9 @@
 
 static int MimeLogEnabled = -1;
 
-+ (int)version {
-  return [super version] + 0 /* v2 */;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
   MimeLogEnabled = [ud boolForKey:@"MimeLogEnabled"] ? 1 : 0;
 }
 
$OpenBSD$
--- sope-mime/NGMime/NGMimeMultipartBody.m.orig	Wed Sep 19 18:21:46 2012
+++ sope-mime/NGMime/NGMimeMultipartBody.m	Thu Sep 20 18:48:14 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeMultipartBody
 
-+ (int)version {
-  return 2;
-}
-
 - (id)initWithPart:(id<NGMimePart>)_part {
   if ((self = [super init])) {
     self->flags.isParsed = YES;
$OpenBSD$
--- sope-mime/NGMime/NGMimePartGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimePartGenerator.m	Thu Sep 20 18:47:45 2012
@@ -31,9 +31,6 @@
 static NSProcessInfo *Pi = nil;
 static BOOL       debugOn = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
   
$OpenBSD$
--- sope-mime/NGMime/NGMimePartParser.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimePartParser.m	Thu Sep 20 18:49:44 2012
@@ -95,10 +95,6 @@ static Class NSMutableDataClass = NULL;
 
 static NGMimeHeaderNames *HeaderNames = NULL;
 
-+ (int)version {
-  return 3;
-}
-
 static int MimeLogEnabled = -1;
 
 + (void)initialize {
$OpenBSD$
--- sope-mime/NGMime/NGMimeRFC822DateHeaderFieldGenerator.m.orig	Wed Sep 19 18:22:23 2012
+++ sope-mime/NGMime/NGMimeRFC822DateHeaderFieldGenerator.m	Thu Sep 20 18:47:54 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeRFC822DateHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m.orig	Wed Sep 19 18:23:32 2012
+++ sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m	Thu Sep 20 18:49:04 2012
@@ -31,10 +31,6 @@
 static NSTimeZone *gmt = nil;
 static NSTimeZone *met = nil;
 
-+ (int)version {
-  return 2;
-}
-
 + (void)initialize {
   static BOOL didInit = NO;
   if (didInit) return;
$OpenBSD$
--- sope-mime/NGMime/NGMimeRfc822BodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeRfc822BodyGenerator.m	Thu Sep 20 18:35:38 2012
@@ -26,15 +26,6 @@
 
 @implementation NGMimeRfc822BodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (id<NGMimePartGenerator>)generatorForPart:(id<NGMimePart>)_part {
   id g;
   
$OpenBSD$
--- sope-mime/NGMime/NGMimeStringHeaderFieldGenerator.m.orig	Wed Sep 19 18:24:25 2012
+++ sope-mime/NGMime/NGMimeStringHeaderFieldGenerator.m	Thu Sep 20 18:49:54 2012
@@ -25,10 +25,6 @@
 
 @implementation NGMimeStringHeaderFieldGenerator
 
-+ (int)version {
-  return 2;
-}
-
 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
   value:(id)_value
 {
$OpenBSD$
--- sope-mime/NGMime/NGMimeStringHeaderFieldParser.m.orig	Wed Sep 19 18:23:58 2012
+++ sope-mime/NGMime/NGMimeStringHeaderFieldParser.m	Thu Sep 20 18:49:13 2012
@@ -29,9 +29,6 @@
 
 static BOOL StripLeadingSpaces = NO;
 
-+ (int)version {
-  return 2;
-}
 + (void)initialize {
   StripLeadingSpaces = [self doesStripLeadingSpaces];
 }
$OpenBSD$
--- sope-mime/NGMime/NGMimeTextBodyGenerator.m.orig	Wed Sep  5 18:34:22 2012
+++ sope-mime/NGMime/NGMimeTextBodyGenerator.m	Thu Sep 20 18:36:45 2012
@@ -27,15 +27,6 @@
 
 @implementation NGMimeTextBodyGenerator
 
-+ (int)version {
-  return 2;
-}
-+ (void)initialize {
-  NSAssert2([super version] == 2,
-            @"invalid superclass (%@) version %i !",
-            NSStringFromClass([self superclass]), [super version]);
-}
-
 - (NSStringEncoding)_encodingFromContentType:(NGMimeType *)_type {
   NSStringEncoding encoding;
   NSString *charset;
$OpenBSD$
--- sope-mime/NGMime/NGMimeType.m.orig	Wed Sep 19 18:22:52 2012
+++ sope-mime/NGMime/NGMimeType.m	Thu Sep 20 18:46:03 2012
@@ -39,10 +39,6 @@ static BOOL _parseMimeType(id self, NSString *_str, NS
 
 @implementation NGMimeType
 
-+ (int)version {
-  return 2;
-}
-
 static NSMutableDictionary *typeToClass = nil;
 
 static inline Class
$OpenBSD$
--- sope-appserver/WEExtensions/bundle-info.plist.orig	Sat Oct 13 13:09:41 2012
+++ sope-appserver/WEExtensions/bundle-info.plist	Sat Oct 13 13:09:47 2012
@@ -1,7 +1,5 @@
 {
   requires = {
-    bundleManagerVersion = 1;
-    
     classes = (
       { name = NSObject; }
     );
$OpenBSD$
--- sope-appserver/WOExtensions/bundle-info.plist.orig	Sat Oct 13 13:09:05 2012
+++ sope-appserver/WOExtensions/bundle-info.plist	Sat Oct 13 13:09:15 2012
@@ -1,7 +1,5 @@
 {
   requires = {
-    bundleManagerVersion = 1;
-    
     classes = (
       { name = NSObject; }
     );
SOPE-2.0.1-libobjc2-fixes.diff (77,027 bytes)   
buzzdee

buzzdee

2012-10-13 12:21

reporter   ~0004641

The last two patches with version 2.0.1 are against sope/sogo 2.0.1, and also fix the "Missing Component" error in the web interface. The problem there was that the WOxElemBuilder did not picked up the SOGoElementsBuilder as a valid builder. The reason was that the bundle-info.plist files required a specific version of the Bundle Manager. I removed this requirement from the .plist file, and it just worked afterward.
Further, some debugging output which snucked in in the other patches is removed.
So this should hopefully be the final version. Please review and let me know what you think about it or just apply it and see how it works ;)

cheers,
Sebastian

wsourdeau

wsourdeau

2012-10-18 09:20

viewer   ~0004673

Hi Sebastian,

I have applied your patch for NGMimeFileData (the rest will follow soon). If you see any warnings regarding method signatures when building SOPE or SOGo, don't hesitate to send them to us, as those may be the cause of very "magic" bugs.

Issue History

Date Modified Username Field Change
2012-09-12 09:03 buzzdee New Issue
2012-09-12 09:03 buzzdee File Added: patch-sope-appserver_NGObjWeb_DynamicElements__WOComplexHyperlink_m
2012-09-12 09:07 buzzdee File Added: patch-sope-mime_NGMime_NGMimeFileData_m
2012-09-12 09:09 buzzdee Note Added: 0004467
2012-09-12 09:20 buzzdee Note Added: 0004470
2012-09-20 09:17 ludovic Note Added: 0004502
2012-09-20 10:16 buzzdee Note Added: 0004509
2012-09-20 13:21 buzzdee File Added: fix-sogo-with-libobjc2.diff
2012-09-20 13:22 buzzdee File Added: fix-sope-with-libobjc2.diff
2012-09-20 13:26 buzzdee Note Added: 0004513
2012-09-20 16:24 ludovic Status new => assigned
2012-09-20 16:24 ludovic Assigned To => jraby
2012-09-21 02:48 buzzdee File Added: fix-sope-with-libobjc2-new.diff
2012-09-21 02:49 buzzdee Note Added: 0004526
2012-09-21 04:09 buzzdee Note Added: 0004527
2012-10-13 12:17 buzzdee File Added: SOGo-2.0.1-libobjc2-fixes.diff
2012-10-13 12:17 buzzdee File Added: SOPE-2.0.1-libobjc2-fixes.diff
2012-10-13 12:21 buzzdee Note Added: 0004641
2012-10-13 13:06 wsourdeau Target Version => 2.0.2
2012-10-18 09:20 wsourdeau Note Added: 0004673
2012-10-18 10:42 wsourdeau Status assigned => resolved
2012-10-18 10:42 wsourdeau Fixed in Version => 2.0.2
2012-10-18 10:42 wsourdeau Resolution open => fixed