kou commented on issue #50119:
URL: https://github.com/apache/arrow/issues/50119#issuecomment-4674657153

   Users need to satisfy 4.a., 4.c. and 4.d. in the license but users can 
choose not only the copyright header approach but also other approaches, right?
   
   It's same as my understanding.
   
   I think that the issue asks a recommended approach for it. I think that 
copy&past-able approach is easier to use. If some users don't want to use 
recommended approach, they can just use other approach.
   
   If you don't want to add the license header to documentation, how about 
making the definitions as a download content that includes our license header?
   
   ```diff
   diff --git a/docs/source/format/CDataInterface.rst 
b/docs/source/format/CDataInterface.rst
   index fd9952b037..c79bf1a7bd 100644
   --- a/docs/source/format/CDataInterface.rst
   +++ b/docs/source/format/CDataInterface.rst
   @@ -271,61 +271,10 @@ Examples
    Structure definitions
    =====================
    
   -The following free-standing definitions are enough to support the Arrow
   +`The free-standing definitions 
<https://github.com/apache/arrow/blob/main/...>`_ are enough to support the 
Arrow
    C data interface in your project.  Like the rest of the Arrow project, they
    are available under the Apache License 2.0.
    
   -.. code-block:: c
   -
   -   #ifndef ARROW_C_DATA_INTERFACE
   -   #define ARROW_C_DATA_INTERFACE
   -
   -   #define ARROW_FLAG_DICTIONARY_ORDERED 1
   -   #define ARROW_FLAG_NULLABLE 2
   -   #define ARROW_FLAG_MAP_KEYS_SORTED 4
   -
   -   struct ArrowSchema {
   -     // Array type description
   -     const char* format;
   -     const char* name;
   -     const char* metadata;
   -     int64_t flags;
   -     int64_t n_children;
   -     struct ArrowSchema** children;
   -     struct ArrowSchema* dictionary;
   -
   -     // Release callback
   -     void (*release)(struct ArrowSchema*);
   -     // Opaque producer-specific data
   -     void* private_data;
   -   };
   -
   -   struct ArrowArray {
   -     // Array data description
   -     int64_t length;
   -     int64_t null_count;
   -     int64_t offset;
   -     int64_t n_buffers;
   -     int64_t n_children;
   -     const void** buffers;
   -     struct ArrowArray** children;
   -     struct ArrowArray* dictionary;
   -
   -     // Release callback
   -     void (*release)(struct ArrowArray*);
   -     // Opaque producer-specific data
   -     void* private_data;
   -   };
   -
   -   #endif  // ARROW_C_DATA_INTERFACE
   -
   -.. note::
   -   The canonical guard ``ARROW_C_DATA_INTERFACE`` is meant to avoid
   -   duplicate definitions if two projects copy the C data interface
   -   definitions in their own headers, and a third-party project
   -   includes from these two projects.  It is therefore important that
   -   this guard is kept exactly as-is when these definitions are copied.
   -
    The ArrowSchema structure
    -------------------------
    
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to