License of CORBA Interface Definition Files published by the Object Management Group

View: New views
7 Messages — Rating Filter:   Alert me  

License of CORBA Interface Definition Files published by the Object Management Group

by Ludovic Brenta-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The source package orbit2_2.14.17.orig.tar.gz shipped by Debian contains
the following files that concern me:

src/idl/CORBA_PIDL/CORBA_Request.idl
src/idl/CORBA_PIDL/pseudo_orb.idl
src/idl/CORBA_PIDL/CORBA_ORB_init.idl
src/idl/CORBA_PIDL/CORBA_ORB.idl
src/idl/CORBA_PIDL/CORBA_Interceptor.idl
src/idl/CORBA_PIDL/CORBA_ServerRequest.idl
src/idl/CORBA_PIDL/CORBA_ValueBase.idl
src/idl/CORBA_PIDL/CORBA_Context.idl
src/idl/CORBA_PIDL/CORBA_NVList.idl
src/idl/CORBA_PIDL/CORBA_Object.idl
src/idl/interop/BiDirPolicy.idl
src/idl/interop/IOP_DCE.idl
src/idl/interop/conv_frame.idl
src/idl/interop/IIOP.idl
src/idl/interop/orbit-specific.idl
src/idl/interop/GSSUP.idl
src/idl/interop/IOP.idl
src/idl/interop/GIOP.idl
src/idl/interop/CSIIOP.idl
src/idl/interop/SendingContext.idl
src/idl/interop/CSI.idl
src/idl/CORBA/CORBA_Pollable.idl
src/idl/CORBA/CORBA_Policy.idl
src/idl/CORBA/CORBA_TypeCode.idl
src/idl/CORBA/CORBA_Stream.idl
src/idl/CORBA/CORBA_StandardExceptions.idl
src/idl/CORBA/CORBA_DomainManager.idl
src/idl/CORBA/CORBA_CustomMarshal.idl
src/idl/CORBA/orb.idl
src/idl/CORBA/CORBA_InterfaceRepository.idl
src/idl/CORBA/CORBA_Current.idl
src/idl/misc/PortableServer.idl
src/idl/misc/DynamicAny.idl

The debian/copyright file in the package does not explicitly state a
license for those files but implies that the license is the GPL.  The
package is in main.

However, these files appear to be part of the Common Object Request
Broker Architecture Specification, version 3.1, as published by the
Object Management Group.  Indeed the first page of this specification
reads:

OMG Document Number: formal/2008-01-04
Standard document URL: http://www.omg.org/spec/CORBA/3.1/Interfaces/PDF
Associated IDL Files*: http://www.omg.org/spec/CORBA/20030101/
http://www.omg.org/spec/CORBA/20030101/CORBA_Context.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_Current.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_CustomMarshal.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_DomainManager.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_InterfaceRepository.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_NVList.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_Object.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_ORB.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_Policy.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_Pollable.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_Request.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_ServerRequest.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_StandardExceptions.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_Stream.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_TypeCode.idl
http://www.omg.org/spec/CORBA/20030101/CORBA_Valuebase.idl
http://www.omg.org/spec/CORBA/20030101/BiDirPpolicy.idl
http://www.omg.org/spec/CORBA/20030101/CONV_FRAME.idl
http://www.omg.org/spec/CORBA/20030101/CSI.idl
http://www.omg.org/spec/CORBA/20030101/CSIIOP.idl
http://www.omg.org/spec/CORBA/20030101/Dynamic.idl
http://www.omg.org/spec/CORBA/20030101/DynamicAny.idl
http://www.omg.org/spec/CORBA/20030101/FT.idl
http://www.omg.org/spec/CORBA/20030101/GIOP.idl
http://www.omg.org/spec/CORBA/20030101/GSSUP.idl
http://www.omg.org/spec/CORBA/20030101/IIOP.idl
http://www.omg.org/spec/CORBA/20030101/IOP.idl
http://www.omg.org/spec/CORBA/20030101/IOP_DCE.idl
http://www.omg.org/spec/CORBA/20030101/Messaging.idl
http://www.omg.org/spec/CORBA/20030101/MessageRouting.idl
http://www.omg.org/spec/CORBA/20030101/orb.idl
http://www.omg.org/spec/CORBA/20030101/PortableInterceptor.idl
http://www.omg.org/spec/CORBA/20030101/PortableServer.idl
http://www.omg.org/spec/CORBA/20030101/pseudo_orb.idl
http://www.omg.org/spec/CORBA/20030101/Sending_Context.idl


The same document contains section B.3 License which reads, page 509:

> The companies listed above have granted to the Object Management
> Group, Inc. (OMG) a nonexclusive, royalty-free, paid up, worldwide
> license to copy and distribute this document and to modify this
> document and distribute copies of the modified version. Each of the
> copyright holders listed above has agreed that no person shall be
> deemed to have infringed the copyright in the included material of any
> such copyright holder by reason of having used the specification set
> forth herein or having conformed any computer software to the
> specification.
>
> Subject to all of the terms and conditions below, the owners of the
> copyright in this specification hereby grant you a fully-paid up,
> non-exclusive, nontransferable, perpetual, worldwide license (without
> the right to sublicense), to use this specification to create and
> distribute software and special purpose specifications that are based
> upon this specification, and to use, copy, and distribute this
> specification as provided under the Copyright Act; provided that: (1)
> both the copyright notice identified above and this permission notice
> appear on any copies of this specification; (2) the use of the
> specifications is for informational purposes and will not be copied or
> posted on any network computer or broadcast in any media and will not
> be otherwise resold or transferred for commercial purposes; and (3) no
> modifications are made to this specification. This limited permission
> automatically terminates without notice if you breach any of these
> terms or conditions. Upon termination, you will destroy immediately
> any copies of the specifications in your possession or control.
Clearly the license is non-free.  Does this license apply to the
"Associated IDL Files"?

I think the answer is yes, which makes the files non-free.  The reason
is because the CORBA IDL FAQ[1] explains how the files were derived
directly from the specification document, to the extent of splitting
some specifications in several files, one per chapter in the text.

[1] http://www.omg.org/spec/CORBA/3.1/20030101/CORBA_IDL_FAQ.html 

The reason I am asking, besides the package orbit2, is because I have
another CORBA broker named PolyORB in the new queue; it also contains
some of these .idl files and I am not entirely sure this is legal.

I'm attaching the unified diff from the CORBA 3.1 associated files to
the files contained orbit2.  This diff is very small, suggesting that
either the files in orbit2 are modified copies of the CORBA 3.1
associated files, or that the orbit2 files were derived (i.e. are a
derived work of) the CORBA 3.1 specification.

Please advise?

(I Cc'd the actual package maintainers of PolyORB whom I sponsor.)

--
Ludovic Brenta.


attachment0 (194 bytes) Download Attachment

Re: License of CORBA Interface Definition Files published by the Object Management Group

by Ludovic Brenta-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I wrote:
> I'm attaching the unified diff from the CORBA 3.1 associated files to
> the files contained orbit2.  This diff is very small, suggesting that
> either the files in orbit2 are modified copies of the CORBA 3.1
> associated files, or that the orbit2 files were derived (i.e. are a
> derived work of) the CORBA 3.1 specification.

and of course I forgot the actual attachment.  Here it is.




Only in 3.1: CONV_FRAME.idl
diff -u 3.1/CORBA_Object.idl orbit2/CORBA_Object.idl
--- 3.1/CORBA_Object.idl 2009-08-25 02:38:32.115092388 +0200
+++ orbit2/CORBA_Object.idl 2009-08-25 02:45:23.023535051 +0200
@@ -9,7 +9,7 @@
         Flags           arg_modes;  // argument mode flags
     };
 
-    interface ORB;   // PIDL Forward Declaration
+    enum SetOverrideType {SET_OVERRIDE, ADD_OVERRIDE};
 
     interface Object {                  // PIDL
 
@@ -40,7 +40,7 @@
             in    Identifier        operation,
             in    NVList            arg_list,
             inout NamedValue        result,
-            out   Request           req,
+            out   Request           request,
             in    Flags             req_flag
         );
 
@@ -67,9 +67,5 @@
             out PolicyList          inconsistent_policies
         );
 
-        string repository_id();
-
         Object get_component ();
-
-        ORB get_ORB ();
     };
diff -u 3.1/CORBA_ORB.idl orbit2/CORBA_ORB.idl
--- 3.1/CORBA_ORB.idl 2009-08-25 02:38:21.130547171 +0200
+++ orbit2/CORBA_ORB.idl 2009-08-25 02:45:22.987547227 +0200
@@ -8,27 +8,24 @@
     typedef unsigned short ServiceType;
     typedef unsigned long  ServiceOption;
     typedef unsigned long  ServiceDetailType;
-    typedef CORBA::OctetSeq ServiceDetailData;
-    typedef sequence<ServiceOption> ServiceOptionSeq;
 
     const ServiceType Security = 1;
 
     struct ServiceDetail {
         ServiceDetailType service_detail_type;
-        ServiceDetailData service_detail;
+        sequence <octet> service_detail;
     };
 
-    typedef sequence<ServiceDetail> ServiceDetailSeq;
-
     struct ServiceInformation {
-        ServiceOptionSeq service_options;
-        ServiceDetailSeq  service_details;
+        sequence <ServiceOption> service_options;
+        sequence <ServiceDetail> service_details;
     };
 
     native ValueFactory;
 
     typedef string ORBid;
 
+    // frehberg@...
     exception WrongTransaction {};
 
     interface ORB {                 // PIDL
diff -u 3.1/CORBA_Policy.idl orbit2/CORBA_Policy.idl
--- 3.1/CORBA_Policy.idl 2009-08-25 02:38:38.655419525 +0200
+++ orbit2/CORBA_Policy.idl 2009-08-25 02:45:23.095561262 +0200
@@ -12,6 +12,8 @@
 
     typedef sequence <Policy> PolicyList;
     typedef sequence <PolicyType> PolicyTypeSeq;
+    // InvalidPolicies added by frehberg@...
+    exception InvalidPolicies { sequence <unsigned short> indices; };
 
     typedef short PolicyErrorCode;
     exception PolicyError {PolicyErrorCode reason;};
@@ -22,19 +24,3 @@
     const PolicyErrorCode BAD_POLICY_VALUE = 3;
     const PolicyErrorCode UNSUPPORTED_POLICY_VALUE = 4;
 
-    enum SetOverrideType {SET_OVERRIDE, ADD_OVERRIDE};
-
-    exception InvalidPolicies {
- sequence<unsigned short>        indicies;
-    };
-
-    interface PolicyManager {
- PolicyList      get_policy_overrides(in PolicyTypeSeq ts);
-
- void            set_policy_overrides(in PolicyList policies,
-     in SetOverrideType set_add)
- raises(InvalidPolicies);
-    };
-    
-    local interface PolicyCurrent : PolicyManager, Current { };
-
diff -u 3.1/CORBA_Stream.idl orbit2/CORBA_Stream.idl
--- 3.1/CORBA_Stream.idl 2009-08-25 02:39:09.736955873 +0200
+++ orbit2/CORBA_Stream.idl 2009-08-25 02:45:23.103549927 +0200
@@ -22,6 +22,7 @@
         unsigned long offset;
     };
 
+#ifndef _ORBIT2_
     abstract valuetype DataOutputStream {
         void write_any              (in any                 value);
         void write_boolean          (in boolean             value);
@@ -186,3 +187,4 @@
                                     in short            scale
                                    ) raises (BadFixedValue);
     };
+#endif
diff -u 3.1/DynamicAny.idl orbit2/DynamicAny.idl
--- 3.1/DynamicAny.idl 2009-08-25 02:39:45.006711253 +0200
+++ orbit2/DynamicAny.idl 2009-08-25 02:45:23.151537789 +0200
@@ -56,7 +56,7 @@
   raises(TypeMismatch, InvalidValue);
         void insert_string( in string   value)    
   raises(TypeMismatch, InvalidValue);
-        void insert_reference(in Object value)    
+        void insert_reference(in CORBA::Object value)    
   raises(TypeMismatch, InvalidValue);
         void insert_typecode(in CORBA::TypeCode
                                         value)    
@@ -77,9 +77,10 @@
   raises(TypeMismatch, InvalidValue);
         void insert_dyn_any(in DynAny   value)    
   raises(TypeMismatch, InvalidValue);
+#ifndef _ORBIT2_
         void insert_val(    in ValueBase value)    
   raises(TypeMismatch, InvalidValue);
-
+#endif
         boolean         get_boolean()              
   raises(TypeMismatch, InvalidValue);
         octet           get_octet()                
@@ -100,7 +101,7 @@
   raises(TypeMismatch, InvalidValue);
         string          get_string()              
   raises(TypeMismatch, InvalidValue);
-        Object          get_reference()            
+        CORBA::Object          get_reference()            
   raises(TypeMismatch, InvalidValue);
         CORBA::TypeCode get_typecode()            
   raises(TypeMismatch, InvalidValue);
@@ -118,9 +119,10 @@
   raises(TypeMismatch, InvalidValue);
         DynAny          get_dyn_any()              
   raises(TypeMismatch, InvalidValue);
+#ifndef _ORBIT2_
         ValueBase       get_val()                  
   raises(TypeMismatch, InvalidValue);
-
+#endif
         boolean         seek(in long index);
         void            rewind();
         boolean         next();
Only in 3.1: Dynamic.idl
Only in 3.1: FT.idl
diff -u 3.1/GIOP.idl orbit2/GIOP.idl
--- 3.1/GIOP.idl 2009-08-25 02:39:56.227269612 +0200
+++ orbit2/GIOP.idl 2009-08-25 02:45:23.067537520 +0200
@@ -20,11 +20,6 @@
     typeprefix GIOP "omg.org";
 #endif // _PRE_3_0_COMPILER_
 
-#ifndef MAX_GIOP_MINOR_VERSION
-#define MAX_GIOP_MINOR_VERSION 4
-#endif
-
-
     struct Version {                            
         octet           major;
         octet           minor;
@@ -34,34 +29,21 @@
     //       be available for V1.0 and V1.1
     typedef sequence<octet> Principal;
 
-#if MAX_GIOP_MINOR_VERSION == 0
-
-    // GIOP 1.0
-    enum MsgType_1_0{                       // rename from MsgType
-        Request,            Reply,          CancelRequest,
-        LocateRequest,      LocateReply,
-        CloseConnection,    MessageError
-    };
-    typedef MsgType_1_0 MsgType;
-
-#else
     // GIOP 1.1
-    enum MsgType_1_1{
+    enum MsgType_1_1 {
         Request,            Reply,          CancelRequest,
         LocateRequest,      LocateReply,
         CloseConnection,    MessageError,                  
         Fragment            // GIOP 1.1 addition
     };
 
-    typedef MsgType_1_1 MsgType_1_2;
-    typedef MsgType_1_1 MsgType_1_3;
-    typedef MsgType_1_1 MsgType;
-#endif
+    typedef GIOP::MsgType_1_1 MsgType_1_2;
+    typedef GIOP::MsgType_1_1 MsgType_1_3;
+
     
     // GIOP 1.0
-    typedef char Magicn[4];
     struct MessageHeader_1_0 {// Renamed from MessageHeader
-        Magicn                      magic;
+        char                        magic [4];
         Version                     GIOP_version;
         boolean                     byte_order;        
         octet                       message_type;
@@ -70,7 +52,7 @@
 
     // GIOP 1.1
     struct MessageHeader_1_1 {
-        Magicn                        magic;
+        char                        magic [4];
         Version                     GIOP_version;
         octet                       flags;      // GIOP 1.1 change
         octet                       message_type;
@@ -88,19 +70,18 @@
         IOP::ServiceContextList     service_context;
         unsigned long               request_id;
         boolean                     response_expected;
-        IOP::ObjectKey              object_key;
+        sequence <octet>            object_key;
         string                      operation;
         Principal                   requesting_principal;
     };
 
     // GIOP 1.1
-    typedef octet RequestReserved[3];
     struct RequestHeader_1_1 {
         IOP::ServiceContextList     service_context;
         unsigned long               request_id;
         boolean                     response_expected;
-        RequestReserved             reserved; // Added in GIOP 1.1
-        IOP::ObjectKey              object_key;
+        octet                       reserved[3]; // Added in GIOP 1.1
+        sequence <octet>            object_key;
         string                      operation;
         Principal                   requesting_principal;
     };
@@ -115,14 +96,14 @@
         IOP::IOR                    ior;
     };
     union TargetAddress switch (AddressingDisposition) {
-        case KeyAddr:               IOP::ObjectKey      object_key;
+        case KeyAddr:               sequence <octet>    object_key;
         case ProfileAddr:           IOP::TaggedProfile  profile;
         case ReferenceAddr:         IORAddressingInfo   ior;
     };
     struct RequestHeader_1_2 {
         unsigned long               request_id;
         octet                       response_flags;            
-        RequestReserved             reserved;
+        octet                       reserved[3];
         TargetAddress               target;
         string                      operation;
         // Principal not in GIOP 1.2
@@ -132,8 +113,7 @@
     // GIOP 1.3
     typedef RequestHeader_1_2 RequestHeader_1_3;
 
-#if MAX_GIOP_MINOR_VERSION < 2
-
+#ifndef GIOP_1_2
     // GIOP 1.0 and 1.1
     enum ReplyStatusType_1_0 {// Renamed from ReplyStatusType
         NO_EXCEPTION,
@@ -152,11 +132,7 @@
     // GIOP 1.1
     typedef ReplyHeader_1_0 ReplyHeader_1_1;
     // Same Header contents for 1.0 and 1.1
-    typedef ReplyStatusType_1_0 ReplyStatusType;
-#endif
-
-#if MAX_GIOP_MINOR_VERSION >= 2
-
+#else
     // GIOP 1.2
     enum ReplyStatusType_1_2 {
         NO_EXCEPTION,
@@ -166,7 +142,6 @@
         LOCATION_FORWARD_PERM,              // new value for 1.2
         NEEDS_ADDRESSING_MODE               // new value for 1.2
     };                  
-    typedef ReplyStatusType_1_2 ReplyStatusType;
 
     struct ReplyHeader_1_2 {
         unsigned long               request_id;
@@ -176,7 +151,7 @@
 
     // GIOP 1.3
     typedef ReplyHeader_1_2 ReplyHeader_1_3;
-#endif
+#endif // GIOP_1_2
 
     struct SystemExceptionReplyBody {
         string                      exception_id;
@@ -191,7 +166,7 @@
     // GIOP 1.0
     struct LocateRequestHeader_1_0 {// Renamed LocationRequestHeader
         unsigned long               request_id;
-        IOP::ObjectKey              object_key;
+        sequence <octet>            object_key;
     };
 
     // GIOP 1.1
@@ -200,14 +175,14 @@
 
     // GIOP 1.2
     struct LocateRequestHeader_1_2 {
-        unsigned long           request_id;
-        TargetAddress           target;
+            unsigned long           request_id;
+            TargetAddress           target;
     };
 
     // GIOP 1.3
     typedef LocateRequestHeader_1_2 LocateRequestHeader_1_3;
 
-#if MAX_GIOP_MINOR_VERSION < 2
+#ifndef GIOP_1_2
     // GIOP 1.0 and 1.1
     enum LocateStatusType_1_0 {// Renamed from LocateStatusType
             UNKNOWN_OBJECT,
@@ -242,7 +217,7 @@
 
     // GIOP 1.3
     typedef LocateReplyHeader_1_2 LocateReplyHeader_1_3;
-#endif // MAX_GIOP_VERSION_NUMBER
+#endif // GIOP_1_2
 
     // GIOP 1.2
     struct FragmentHeader_1_2 {
diff -u 3.1/IIOP.idl orbit2/IIOP.idl
--- 3.1/IIOP.idl 2009-08-25 02:40:08.223871058 +0200
+++ orbit2/IIOP.idl 2009-08-25 02:45:23.043532973 +0200
@@ -25,15 +25,15 @@
         Version             iiop_version;
         string              host;
         unsigned short      port;
-        IOP::ObjectKey      object_key;
+        sequence <octet>    object_key;
     };
     struct ProfileBody_1_1 {// also used for 1.2
         Version             iiop_version;
         string              host;
         unsigned short      port;
-        IOP::ObjectKey      object_key;
+        sequence <octet>    object_key;
         // Added in 1.1 unchanged for 1.2
-        IOP::TaggedComponentSeq components;
+        sequence <IOP::TaggedComponent> components;
     };              
 
     // BiDirectional IIOP
diff -u 3.1/IOP.idl orbit2/IOP.idl
--- 3.1/IOP.idl 2009-08-25 02:40:13.752140011 +0200
+++ orbit2/IOP.idl 2009-08-25 02:45:23.059549134 +0200
@@ -25,14 +25,11 @@
     const ProfileId                 TAG_MULTIPLE_COMPONENTS = 1;
     const ProfileId                 TAG_SCCP_IOP = 2;
 
-    typedef CORBA::OctetSeq ProfileData;
-
     struct TaggedProfile {
         ProfileId                   tag;
-        ProfileData                 profile_data;
+        sequence <octet>            profile_data;
     };
     
-    typedef sequence <TaggedProfile> TaggedProfileSeq;
   
     // The IOR
 
@@ -40,8 +37,9 @@
     // object-specific protocol profiles, plus a type ID.
     struct IOR {
         string                      type_id;
-        TaggedProfileSeq            profiles;
+        sequence <TaggedProfile>    profiles;
     };
+    
 
     // IOR Components
 
@@ -51,18 +49,13 @@
 
     typedef unsigned long ComponentId;
 
-    typedef CORBA::OctetSeq ComponentData;
-
     struct TaggedComponent {
         ComponentId                 tag;
-        ComponentData               component_data;
+        sequence <octet>            component_data;
     };
 
-    typedef sequence <TaggedComponent> TaggedComponentSeq;
     typedef sequence <TaggedComponent> MultipleComponentProfile;
 
-    typedef CORBA::OctetSeq ObjectKey;
-
     const ComponentId           TAG_ORB_TYPE                = 0;
     const ComponentId           TAG_CODE_SETS               = 1;
     const ComponentId           TAG_POLICIES                = 2;  
Only in 3.1: MessageRouting.idl
Only in 3.1: Messaging.idl
diff -u 3.1/orb.idl orbit2/orb.idl
--- 3.1/orb.idl 2009-08-25 02:40:53.290118400 +0200
+++ orbit2/orb.idl 2009-08-25 02:45:23.127542461 +0200
@@ -3,6 +3,20 @@
 #ifndef _ORB_IDL_
 #define _ORB_IDL_
 
+// settings for ORBit2 compliance
+#ifndef _PRE_3_0_COMPILER_
+#define _PRE_3_0_COMPILER_
+#endif
+#ifndef _NO_LOCAL_
+#define _NO_LOCAL_
+#endif
+#ifndef _ORBIT2_
+#define _ORBIT2_
+#endif
+// end settings for ORBit2 compliance
+
+
+
 #ifdef _PRE_3_0_COMPILER_
 #pragma prefix "omg.org"
 #else
@@ -46,10 +60,13 @@
     local interface Current;             // Chapter  4, CORBA_Current.idl
     interface DomainManager;             // Chapter  4, CORBA_DomainManager.idl
     interface Policy;                    // Chapter  4, CORBA_Policy.idl
+#ifndef _ORBIT2_
     local interface PollableSet;         // Chapter  7, CORBA_Pollable.idl
+
     abstract valuetype CustomMarshal;    // Chapter  5, CORBA_valuetype.idl
     abstract valuetype DataInputStream;  // Chapter  5, CORBA_Stream.idl
     abstract valuetype DataOutputStream; // Chapter  5, CORBA_Stream.idl
+#endif
 
 // Forward references to Chapter 10, CORBA_InterfaceRepository.idl
     interface AbstractInterfaceDef;
@@ -96,8 +113,10 @@
 #include <CORBA_Policy.idl>
 #include <CORBA_DomainManager.idl>
 
+#ifndef _ORBIT2_
 // Chapter 7: Pollable
 #include <CORBA_Pollable.idl>
+#endif
 
 // Chapter 10: The Interface Repository
 #include <CORBA_InterfaceRepository.idl>
@@ -106,8 +125,10 @@
 // CORBA_TypeCode.idl depends on CORBA_InterfaceRepository.idl
 #include <CORBA_TypeCode.idl>
 
+#ifndef _ORBIT2_
 // Chapter 5: Value Type Semantics
 #include <CORBA_CustomMarshal.idl>
+#endif
 #include <CORBA_Stream.idl>
 
 };
Only in 3.1: PortableInterceptor.idl
diff -u 3.1/PortableServer.idl orbit2/PortableServer.idl
--- 3.1/PortableServer.idl 2009-08-25 02:40:42.013548036 +0200
+++ orbit2/PortableServer.idl 2009-08-25 02:45:23.143539067 +0200
@@ -38,7 +38,7 @@
     native Servant;
     typedef CORBA::OctetSeq ObjectId;
     exception ForwardRequest {
-        Object forward_reference;
+        CORBA::Object forward_reference;
     };
     
     // Policy interfaces
@@ -118,7 +118,8 @@
         void discard_requests(  in boolean wait_for_completion)
                                     raises(AdapterInactive);
         void deactivate(        in boolean etherealize_objects,
-                                in boolean wait_for_completion);
+                                in boolean wait_for_completion)
+                                    raises(AdapterInactive);
         State get_state();
         string get_id();
     };
@@ -239,24 +240,24 @@
   raises (ObjectNotActive, WrongPolicy);
         
         // reference creation operations
-        Object create_reference (    in CORBA::RepositoryId intf)
+        CORBA::Object create_reference (    in CORBA::RepositoryId intf)
   raises (WrongPolicy);
-        Object create_reference_with_id (
+        CORBA::Object create_reference_with_id (
                                     in ObjectId             oid,
                                     in CORBA::RepositoryId  intf);
         
         // Identity mapping operations:
         ObjectId servant_to_id(     in Servant              p_servant)
   raises (ServantNotActive, WrongPolicy);
-        Object servant_to_reference(in Servant              p_servant)
+        CORBA::Object servant_to_reference(in Servant              p_servant)
   raises (ServantNotActive, WrongPolicy);
-        Servant reference_to_servant(in Object              reference)
+        Servant reference_to_servant(in CORBA::Object              reference)
   raises(ObjectNotActive, WrongAdapter, WrongPolicy);
-        ObjectId reference_to_id(   in Object               reference)
+        ObjectId reference_to_id(   in CORBA::Object               reference)
   raises (WrongAdapter, WrongPolicy);
         Servant id_to_servant(      in ObjectId             oid)
   raises (ObjectNotActive, WrongPolicy);
-        Object id_to_reference(     in ObjectId             oid)
+        CORBA::Object id_to_reference(     in ObjectId             oid)
   raises (ObjectNotActive, WrongPolicy);
 
         readonly attribute CORBA::OctetSeq id;
@@ -268,7 +269,7 @@
         exception   NoContext { };
         POA         get_POA()       raises (NoContext);
         ObjectId    get_object_id() raises (NoContext);
-        Object      get_reference() raises (NoContext);
+        CORBA::Object      get_reference() raises (NoContext);
         Servant     get_servant()   raises (NoContext);
     };
 };
diff -u 3.1/pseudo_orb.idl orbit2/pseudo_orb.idl
--- 3.1/pseudo_orb.idl 2009-08-25 02:40:59.514419196 +0200
+++ orbit2/pseudo_orb.idl 2009-08-25 02:45:22.979533699 +0200
@@ -69,18 +69,6 @@
 //   It contains some data definitions needed by Chapter 4 interfaces.
 //   The other reason not to try to rearrange the order is that it's hard.
 
-// The "define" fakes out the compiler to let it compile the "Context"
-//    interface and references to it even though "context" is a keyword
-#define Context CContext
-
-// The "define" fakes out the compiler to let it compile the "Object"
-//    interface and references to it even though "Object" is a keyword
-#define Object OObject
-
-// The "define" fakes out the compiler to let it compile the "ValueBase"
-//    valuetype and references to it even though "ValueBase" is a keyword
-#define ValueBase VValueBase
-
 // Forward references, alphabetically
     interface Context;                   // Chapter  7, CORBA_Context.idl
     interface NVList;                    // Chapter  7, CORBA_NVList.idl
@@ -88,16 +76,19 @@
     interface ORB;                       // Chapter  4, CORBA_ORB.idl
     interface Request;                   // Chapter  7, CORBA_Request.idl
     interface ServerRequest;             // Chapter  8, CORBA_ServerRequest.idl
+#ifndef _ORBIT2_
     valuetype ValueBase;                 // Chapter  4, CORBA_ValueBase.idl
-
+#endif
     typedef unsigned long Flags;
 
 // Chapter 4: ORB Interface
 #include <CORBA_Object.idl>
 #include <CORBA_ORB.idl>
 
+#ifndef _ORBIT2_
 // Chapter 5: Value Type Semantics
 #include <CORBA_ValueBase.idl>
+#endif
 
 // Chapter 7: Dynamic Invocation Interface
 #include <CORBA_Request.idl>



attachment0 (194 bytes) Download Attachment

Re: License of CORBA Interface Definition Files published by the Object Management Group

by Josselin Mouette :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Le mardi 25 août 2009 à 02:52 +0200, Ludovic Brenta a écrit :
> The source package orbit2_2.14.17.orig.tar.gz shipped by Debian contains
> the following files that concern me:
>
> src/idl/CORBA_PIDL/CORBA_Request.idl
> src/idl/CORBA_PIDL/pseudo_orb.idl
[snip]

> The debian/copyright file in the package does not explicitly state a
> license for those files but implies that the license is the GPL.  The
> package is in main.

My opinion is that the headers themselves are not subject to copyright.
They are just the formal description of a specification, there is
nothing creative in them. However the comments are, so maybe we have to
strip the comments from those files.

Cheers,
--
 .''`.      Josselin Mouette
: :' :
`. `'   “I recommend you to learn English in hope that you in
  `-     future understand things”  -- Jörg Schilling


signature.asc (196 bytes) Download Attachment

Re: License of CORBA Interface Definition Files published by the Object Management Group

by Ludovic Brenta-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Josselin Mouette <joss@...> writes:

> Le mardi 25 août 2009 à 02:52 +0200, Ludovic Brenta a écrit :
>> The source package orbit2_2.14.17.orig.tar.gz shipped by Debian contains
>> the following files that concern me:
>>
>> src/idl/CORBA_PIDL/CORBA_Request.idl
>> src/idl/CORBA_PIDL/pseudo_orb.idl
> [snip]
>
>> The debian/copyright file in the package does not explicitly state a
>> license for those files but implies that the license is the GPL.  The
>> package is in main.
>
> My opinion is that the headers themselves are not subject to copyright.
> They are just the formal description of a specification, there is
> nothing creative in them. However the comments are, so maybe we have to
> strip the comments from those files.

Thanks.

Since:
- the spec specifically refers to the .idl files
- the .idl files are derived works from the spec,

I still think that the .idl files are copyrighted and subject to the
same license as the spec.

However, your interpretation is probably closer to the intended purpose
of these files.  The OMG failed to make their intentions clear.  I don't
think they understood copyright law themselves since they speak of
"using the specification" and "conforming software to the
specification", neither of which are even concepts in copyright law,
which concerns itself only with distribution, modification and derived
works.  So, the OMG's failure to clarify the license for the .idl files
is not surprising.

It seems to me that if the authors of a CORBA implementation choose to
distribute .idl files (even though this is not a requirement of a
conforming implementation), they can do so only if they are the authors
of the .idl files; and if they are the authors of the .idl files then
they can choose whatever license they want under the "permission to use
the specification" which I understand as "permission to derive works
from the copyrighted specification".  This may or may not be the case
for the authors of orbit2 but the authors of PolyORB have already stated
that they redistribute the OMG's .idl files (and they even pointed me to
the OMG license).  I think such redistribution is illegal.

Any other opinion?

--
Ludovic Brenta.


--
To UNSUBSCRIBE, email to debian-legal-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Re: License of CORBA Interface Definition Files published by the Object Management Group

by Xavier Grave :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ludovic Brenta a écrit :

> Josselin Mouette <joss@...> writes:
>> Le mardi 25 août 2009 à 02:52 +0200, Ludovic Brenta a écrit :
>>> The source package orbit2_2.14.17.orig.tar.gz shipped by Debian contains
>>> the following files that concern me:
>>>
>>> src/idl/CORBA_PIDL/CORBA_Request.idl
>>> src/idl/CORBA_PIDL/pseudo_orb.idl
>> [snip]
>>
>>> The debian/copyright file in the package does not explicitly state a
>>> license for those files but implies that the license is the GPL.  The
>>> package is in main.
>> My opinion is that the headers themselves are not subject to copyright.
>> They are just the formal description of a specification, there is
>> nothing creative in them. However the comments are, so maybe we have to
>> strip the comments from those files.
>
> Thanks.
>
> Since:
> - the spec specifically refers to the .idl files
> - the .idl files are derived works from the spec,
>
> I still think that the .idl files are copyrighted and subject to the
> same license as the spec.
>
> However, your interpretation is probably closer to the intended purpose
> of these files.  The OMG failed to make their intentions clear.  I don't
> think they understood copyright law themselves since they speak of
> "using the specification" and "conforming software to the
> specification", neither of which are even concepts in copyright law,
> which concerns itself only with distribution, modification and derived
> works.  So, the OMG's failure to clarify the license for the .idl files
> is not surprising.
>
> It seems to me that if the authors of a CORBA implementation choose to
> distribute .idl files (even though this is not a requirement of a
> conforming implementation), they can do so only if they are the authors
> of the .idl files; and if they are the authors of the .idl files then
> they can choose whatever license they want under the "permission to use
> the specification" which I understand as "permission to derive works
> from the copyrighted specification".  This may or may not be the case
> for the authors of orbit2 but the authors of PolyORB have already stated
> that they redistribute the OMG's .idl files (and they even pointed me to
> the OMG license).  I think such redistribution is illegal.
>
> Any other opinion?
>

Hi,

I'm sorry I can't help on such problems. It is very far from my
understanding. Can't we just use the testsuite apart from package
building to be sure that our packaging is OK and then distribute a
version without the .idl files ? Testing should be our duty and not for
the buildd machines ?

My two cents... xavier
PS:any comment on my last changes (minors) ?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkqffMMACgkQVIZi0A5BZF7+zQCgxCwGH2fKlCZGdeFyXhYF4tF5
ATsAn3j9aF86b9IS1Rd/80URBut0pNdx
=et0p
-----END PGP SIGNATURE-----


--
To UNSUBSCRIBE, email to debian-legal-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Re: License of CORBA Interface Definition Files published by the Object Management Group

by Ludovic Brenta-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Selon xavier grave <xavier.grave@...>:
> Can't we just use the testsuite apart from package
> building to be sure that our packaging is OK and then distribute a
> version without the .idl files ? Testing should be our duty and not for
> the buildd machines ?

We will do that for sure but there are other .idl files required to build, not
just test, the CORBA personality (see Thomas Quinot's email on
polyorb-users@...).  In the mean time, let's focus on the legal
aspects on this list.

--
Ludovic Brenta.


--
To UNSUBSCRIBE, email to debian-legal-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Re: License of CORBA Interface Definition Files published by the Object Management Group

by Xavier Grave :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ludovic Brenta a écrit :

> Selon xavier grave <xavier.grave@...>:
>> Can't we just use the testsuite apart from package
>> building to be sure that our packaging is OK and then distribute a
>> version without the .idl files ? Testing should be our duty and not for
>> the buildd machines ?
>
> We will do that for sure but there are other .idl files required to build, not
> just test, the CORBA personality (see Thomas Quinot's email on
> polyorb-users@...).  In the mean time, let's focus on the legal
> aspects on this list.
>
Hi,

Thanks for the reminder. I have probably miss Thomas's email during my
holiday time.

xavier
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkqg4pIACgkQVIZi0A5BZF7a7wCcCl0dyBc290V5+aaS76//4QKM
d1MAnRU4abPSyukO3Q4PrsvmKE2IwE8T
=VcpC
-----END PGP SIGNATURE-----


--
To UNSUBSCRIBE, email to debian-legal-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...