Bug#581934: GNUstep transition

2010-08-23 Thread Federico Gimenez Nieto
Hi,

Mehdi Dogguy wrote:
> Do you have a sponsor for this upload? If not, I can upload it. I'll
> just wait for gorm.app and renaissance to be available on all
> architectures and then proceed with the upload. Is this ok for you?
> 

Of course, thanks a lot! :)

Cheers,
Federico



signature.asc
Description: OpenPGP digital signature


Bug#581934: GNUstep transition

2010-08-23 Thread Mehdi Dogguy
On 08/23/2010 09:58 AM, Federico Gimenez Nieto wrote:
> 
> I've uploaded to mentors a new version with all these changes
> applied, could you please take a look [1]?
> 

Do you have a sponsor for this upload? If not, I can upload it. I'll
just wait for gorm.app and renaissance to be available on all
architectures and then proceed with the upload. Is this ok for you?

Regards,

-- 
Mehdi Dogguy مهدي الدڤي
http://dogguy.org/



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#581934: GNUstep transition

2010-08-23 Thread Federico Gimenez Nieto
Yavor Doganov wrote:
> В 09:58 +0200 на 23.08.2010 (пн), Federico Gimenez Nieto написа:
>> Thanks for the clarification, i am pretty lost here.
> 
> I'd be glad to explain in detail if you let me know what you find
> confusing.
> 

Thanks, with your previous explanations i understand the big picture,
i'll ping you if i have questions about any details related to this.

Cheers
Federico



signature.asc
Description: OpenPGP digital signature


Bug#581934: GNUstep transition

2010-08-23 Thread Yavor Doganov
В 09:58 +0200 на 23.08.2010 (пн), Federico Gimenez Nieto написа:
> Thanks for the clarification, i am pretty lost here.

I'd be glad to explain in detail if you let me know what you find
confusing.

> I've uploaded to mentors a new version with all these changes applied,
> could you please take a look [1]?

Looks fine to me.




--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#581934: GNUstep transition

2010-08-23 Thread Federico Gimenez Nieto
Hi,

Yavor Doganov wrote:
> 
> I'm afraid I don't understand the question.  If upstream bumps the
> SONAME, it isn't distro-specific in anyway, right?  AFAICT, (in Debian
> at least; I'm not aware of other practices) a distro-specific SONAME
> for a library is introduced when
> 
> 1) An ABI breaking Debian-specific patch has been added; which
>- might be rejected by upstream (for whatever reason);
>- might be a bugfix already present upstream, but
>  ABI-incompatible with the version in Debian (as is the case).
> 2) A new upstream release is ABI incompatible, but upstream forgot
>to indicate that with the proper mechanism (this happens quite
>often for ObjC libraries, unfortunately).
> 3) Upstream is providing a library, but it doesn't have any
>interface versioning mechanism (as some of the Mozilla
>libraries).
> 4) Something else I surely forget.

Thanks for the clarification, i am pretty lost here.

> 
> So, you should make sure that upstream bumps the SONAME for next
> release (0.13?), because there are ABI breaks all over the place
> (affecting all public libraries).  For the current transition, the
> attached minimized patch seems to work for me, 

Ok, thanks a lot, it have worked in my tests too.

> but don't forget to:
> 
>   - Perform extensive runtime tests; most changes are not trivial.
>   - Rename the runtime library to libgnustep-dl-0d (debian/control);
> and update dependencies (this implies passing through NEW).
>   - Amend debian/rules to cater for the package rename.
>   - Rename debian/libgnustep-dl-0.install as
> debian/libgnustep-dl-0d.install and adjust the EOControl entry for
> soname change.
> 

I've uploaded to mentors a new version with all these changes applied,
could you please take a look [1]?


[1]
http://mentors.debian.net/debian/pool/main/g/gnustep-dl2/gnustep-dl2_0.12.0-4.dsc


Cheers,
Federico



signature.asc
Description: OpenPGP digital signature


Bug#581934: GNUstep transition

2010-08-11 Thread Yavor Doganov
tags 581934 + patch
thanks

On Mon, Aug 09, 2010 at 08:38:05AM +0200, Federico Giménez Nieto wrote:
> Yes, when all the required packages will be ready i'll try, probably
> with a little help from your side :), to fix any remaining issues.

I'm always glad to help (if I can), but keep in mind that this package
is the most mysterious one, to me at least.

> Then, should we suggest upstream to introduce the distro-specific
> soname or should we try to modify it by ourselves?

I'm afraid I don't understand the question.  If upstream bumps the
SONAME, it isn't distro-specific in anyway, right?  AFAICT, (in Debian
at least; I'm not aware of other practices) a distro-specific SONAME
for a library is introduced when

1) An ABI breaking Debian-specific patch has been added; which
   - might be rejected by upstream (for whatever reason);
   - might be a bugfix already present upstream, but
 ABI-incompatible with the version in Debian (as is the case).
2) A new upstream release is ABI incompatible, but upstream forgot
   to indicate that with the proper mechanism (this happens quite
   often for ObjC libraries, unfortunately).
3) Upstream is providing a library, but it doesn't have any
   interface versioning mechanism (as some of the Mozilla
   libraries).
4) Something else I surely forget.

In all cases, a decent distro should attempt to track incompatible
library changes and act accordingly.  This is both for the overall
distro health (dependent packages using the library must not fail
miserably at runtime) and for user/developer friendliness (some people
use Debian as a development platform, so any programs using the
a library the distro provides should continue to run flawlessly, or
otherwise be forced to be rebuilt/relinked against the new version --
this is actually the use case of gnustep-dl2).

So, you should make sure that upstream bumps the SONAME for next
release (0.13?), because there are ABI breaks all over the place
(affecting all public libraries).  For the current transition, the
attached minimized patch seems to work for me, but don't forget to:

  - Perform extensive runtime tests; most changes are not trivial.
  - Rename the runtime library to libgnustep-dl-0d (debian/control);
and update dependencies (this implies passing through NEW).
  - Amend debian/rules to cater for the package rename.
  - Rename debian/libgnustep-dl-0.install as
debian/libgnustep-dl-0d.install and adjust the EOControl entry for
soname change.

In theory, it _might_ be possible to rework Richard's approach,
avoiding the ABI break.  If I only understood 10% of gnustep-dl2's
code...
2010-08-11  Yavor Doganov  

	* EOControl/GNUmakefile (EOControl_INTERFACE_VERSION): Define
  as Debian-specific due to the ABI break.

2010-04-09  Fred Kiefer  

* EOInterface/EOPopUpAssociation.m:
	* DBModeler/ModelerEntityEditor.m:
	* DBModeler/ModelerTableEmbedibleEditor.m: Add missing includes.

2010-04-07  David Ayers  

* EOInterface/EOPopUpAssociation.m: Add missing include.
Reported by: German Arias.

2010-03-15  Richard Frith-Macdonald  

	* EOControl/EONSAddOns.h:
	* EOControl/EONSAddOns.m:
	* EOControl/EOKeyValueCoding.m:
	* EOControl/EOClassDescription.m:
	Rewrite mechanism to try to ensure that our implementations are used
	for KVC.  New version should work with the objc runtime API.

--- gnustep-dl2-0.12.0.orig/EOControl/EOClassDescription.m
+++ gnustep-dl2-0.12.0/EOControl/EOClassDescription.m
@@ -739,17 +739,13 @@
 
 @end
 
-
-...@implementation NSObject (EOClassDescriptionPrimitives)
-
-- (void)GDL2CDNSObjectICategoryID
-{
-}
+...@interface GDL2CDNSObject : NSObject
+...@end
+...@implementation GDL2CDNSObject
 
 + (void)load
 {
-  GDL2_ActivateCategory("NSObject",
-@selector(GDL2CDNSObjectICategoryID), YES);
+  GDL2_Activate([self class], YES);
 }
 
 // when you enable the NSDebugMLLogs here you will have a loop. dave
--- gnustep-dl2-0.12.0.orig/EOControl/EOKeyValueCoding.m
+++ gnustep-dl2-0.12.0/EOControl/EOKeyValueCoding.m
@@ -92,16 +92,13 @@
 #define INITIALIZE if (!initialized) initialize();
 
 
-...@implementation NSObject (_EOKeyValueCodingCompatibility)
-
-- (void)GDL2KVCNSObjectICategoryID
-{
-}
+...@interface	GDL2KVCNSObject : NSObject
+...@end
+...@implementation GDL2KVCNSObject
 
 + (void)load
 {
-  GDL2_ActivateCategory("NSObject",
-			@selector(GDL2KVCNSObjectICategoryID), YES);
+  GDL2_Activate([self class], YES);
 }
 
 
@@ -235,16 +232,13 @@
 @end
 
 
-...@implementation NSArray (EOKeyValueCoding)
-
-- (void)GDL2KVCNSArrayICategoryID
-{
-}
+...@interface	GDL2KVCNSArray : NSArray
+...@end
+...@implementation	GDL2KVCNSArray
 
 + (void)load
 {
-  GDL2_ActivateCategory("NSArray",
-			@selector(GDL2KVCNSArrayICategoryID), YES);
+  GDL2_Activate([self class], YES);
 }
 
 /**
@@ -543,16 +537,14 @@
 @end
 
 
-...@implementation NSDictionary (EOKeyValueCoding)
+...@interface	GDL2KVCNSDictionary : NSDictionary