IBM / db2-samples

Db2 application code, configuration samples, and other examples
https://www.ibm.com/analytics/developing-with-db2
Apache License 2.0
85 stars 86 forks source link

Include Db2 vendor related header files to db2-samples repository #41

Closed surekav closed 2 years ago

surekav commented 2 years ago

Hello, For developing a vendor library solution for Db2 backup and restore, it seems that we need to include some header files from the Db2 install directory (e.g. /opt/IBM/db2/V11.5/include).

The compilation steps listed in the README https://github.com/IBM/db2-samples/tree/master/BARVendor require the header files from the Db2 install directory. As these header files are not part of this repository db2-samples, I wanted to understand the licensing model for the usage of these header files. Could someone please assist in providing the licensing model for these header files? Is it fine to copy from the Db2 install directory and send a PR to this repository?

Thanks

surekav commented 2 years ago

@kdrodger Could you please take a look or refer to the right person for this? Thanks!

tasdevil13 commented 2 years ago

As Db2 Community Edition is free and it includes the header files for developers, it would be ok for someone to use it for development of a vendor library. Or would this require a vendor to license at least some Db2?

irinadel commented 2 years ago

@surekav Which header files are required? Can you post some additional details

surekav commented 2 years ago

@irinadel @tasdevil13 There are quite a few header files that I believe are needed for building the vendor library. The sample vendor.C implementation provided by IBM here: https://github.com/IBM/db2-samples/blob/master/BARVendor/vendor.C includes 3 header files. These are:

These header files are located in the DB2 install directory (more specifically at /opt/IBM/db2/V11.5/include/ on a host where Db2 is installed). This Db2 install directory path is provided during compilation and linking as mentioned here: https://github.com/IBM/db2-samples/blob/master/BARVendor/README#L72

These header files, in turn, uses other header files present in /opt/IBM/db2/V11.5/include/ as well.

Similarly, to build and use db2APIs such as the ones mentioned here https://github.com/IBM/db2-samples/tree/master/cpp other header files from /opt/IBM/db2/V11.5/include/ are needed. For e.g. the sample file here: https://github.com/IBM/db2-samples/blob/master/cpp/ininfo.C makes use of

irinadel commented 2 years ago

So in reality, these header files don't need to reside in this repo. They can just be pointed to when you're compiling the examples against an existing db2 installation. I am not sure what value it will provide to have all dependent header files extracted in this repo.

surekav commented 2 years ago

@irinadel Well, this repo specifies that it comes under Apache2.0-Licence and therefore anyone is free to use code from this repo. The same may not be true with the header files which are installed as part of Db2 installation. They may be under a different licence which may have certain restrictions on its usage.

Would copying the header files from Db2 install directory to our organisation repository and building application using the structures and definitions from these header files require any licensing ?

kdrodger commented 2 years ago

I think I'm wondering about the same questions as Irina -- is there value and a use case for having a copy of the SDK and header files here, without the rest of some Db2 deployment release? Those vendor interfaces are an interesting case, as opposed to most of the other samples which actually require a Db2 instance to build and execute.

It might be possible to put a copy of SDK here as well, although even then it would likely only be for 64-bit x86 Linux, and only for the most recent Db2 release, and so I'm wondering if that breaks the value prop since the SDK APIs could change and no longer reflect the Db2 level that you intend to build for and support.

surekav commented 2 years ago

Thank @kdrodger @irinadel for the quick response. Agree with you that header files need not be part of this repo. For vendor interfaces case which needs Db2 header files, do you think the below approach attracts any licensing issues:

kdrodger commented 2 years ago

Closing due to inactivity. Feel free to re-open if necessary.