OS2 World Community Forum

Public Discussions => General Discussion => Topic started by: Roderick Klein on August 01, 2018, 10:37:33 pm

Title: IBM DDK License Discussion
Post by: Roderick Klein on August 01, 2018, 10:37:33 pm
Yes, ArcaOS does good job with supporting OS/2 on modern hardware. Though, it is closed. It is even more closed than eComStation. They do copy protection by branding some binaries with user's own name. Neither IBM OS/2, nor eCS did not do such bad things. Newer drivers like DANIS506 or AHCI are linked with closed-source libraries (DRV16, DRV32 etc.), so that they are not fully open source while having been published under GNU GPL. And they now port drivers from FreeBSD, because BSD license allows them to not publish sources.

Well one thing that is easier about ArcaOS and putting in drivers the user data is that you no longer have to deal with license number you have to enter. Having worked (note I no longer work @Mensys) on eCS the license key was not working to bad. But for some people it was a not that easy to enter the 40 or so character registration key in the installer.

As for your statement that 16 and 32 bit driver library is closed source most likely duo to the DDK license.
In this file Drv16-20161010.zip (download here https://88watts.net/software.html) is a readme file:

"The Drv16 Kit is a derivative work of the IBM DDK. You must have a IBM"
DDK license to use this software.
Anyway for the the 32 bit and 16 bit driver they have a library and a presentation on how to write drivers:
http://www.warpstock.eu/images/2015/presentations/David_Azarewicz-WSE2015_Writing_Device_Drivers.pd

Anyway again it might be the age old problem this caused the orginally IBM DDK license.

Why Arca Noae did not provide the source code of certain libraires I do not know.  But I have an idea, you must be aware of what the DDK states about publishing  source code! This is also the reason why UNIAUD16.SYS @Netlabs can not be published publicly, because its covered the DDK license from IBM.

As for your last statement that Arca Noae picked FreeBSD so they do not have to make the source code public.
They had a different reason, a technicall on. When I worked with David Azarewicz at Mensys on eCS the Wireless NIC driver based on Linux sources ended up being dead. Why ? The Linux guys had made such many changes to the sources you could no longer recompile the sources. Aaaah:

https://www.arcanoae.com/roadmap/
"With the aid of the MultiMac framework, Arca Noae already provides support for some Intel, Nvidia, and Realtek chipsets based on Linux drivers. Changes in the Linux driver architecture have made maintaining these drivers and porting new drivers increasingly difficult. As was announced at Warpstock 2014, Arca Noae is working on an alternative new library for porting FreeBSD drivers to OS/2."

Roderick Klein
Title: Re: IBM DDK License Discussion
Post by: Martin Iturbide on August 01, 2018, 11:01:41 pm
Hi

When we discuss in public the IBM DDK license I think it is important for people to check the license by them self and point to the "problematic paragraph" (https://www.os2world.com/wiki/index.php/IBM_OS/2_Products_Licensing_Analysis#IBM_Device_Driver_Kit_-_2004) that is in incompatible with open source software licensing. 

On the first part of the license, "1. Grant of License for the IBM Code", IBM Code is referred as the device driver sample source code that is included on the package/website, it says.

Quote
In addition, IBM grants to you the non-exclusive, non-assignable, non-transferable right, under the applicable IBM copyrights, to reproduce and distribute, in object code form only, the IBM Code and/or the permitted derivative work thereof, but only in conjunction with and as part of the OS/2 Device Driver and only if you:
- a) do not make any statements to the effect or which imply that the OS/2 Device Driver is "certified" by IBM or that its performance is guaranteed by IBM and
- b) agree to indemnify, hold harmless and defend IBM and its subsidiaries and their suppliers from and against any and all claims, legal proceedings, liabilities, damages, costs and expenses, including attorney's fees, arising out of or in connection with your distribution of the IBM Code and/or the OS/2 Device Driver.

But it does not mean that the derivative work, like a driver someone made, has to be under the same IBM DDK license, it can be freeware, shareware or commercial software, as long as it is in "object code only".  So it looks that is not mandatory for the author to release the "drv16 or drv32 binaries" also under the IBM DDK license, while you agree to the a) and b) conditions of the license.

Will the words "...but only in conjunction with and as part of the OS/2 Device Driver" means that if someone made a driver with the IBM DDK and it just works on ArcaOS or eComStation and not on OS/2 is breaking the license?

Regards
Title: Re: IBM DDK License Discussion
Post by: Martin Iturbide on August 01, 2018, 11:14:29 pm
Why Arca Noae did not provide the source code of certain libraires I do not know.  But I have an idea, you must be aware of what the DDK states about publishing  source code! This is also the reason why UNIAUD16.SYS @Netlabs can not be published publicly, because its covered the DDK license from IBM.

I think I found a satisfactory solution for that problem.

Netlabs holds a close source repository for the Lar's USB driver driver for example. The repository is not open to the public, but since Netlabs is a collaborative organization, anybody that wants to collaborate on driver development can agree to the IBM DDK license and to any collaborative rules that Netlabs may have to develop it. It just like having a company agreeing to the IBM DDK and having their employees to work on a driver and the changes of the code will remain as company's property.

Any driver made with the IBM DDK can be turn into a "close source but collaborative project" under the umbrella of a collaborative organization like Netlabs. So, if you want to share your device driver development that came from IBM DDK you can do it, the IBM DDK license is not an excuse to not made a collaborative project.

So, everybody can donate their IBM DDK based driver source code changes to Netlabs for example. Arca Noae can do that if they want to.

Regards
Title: Re: IBM DDK License Discussion
Post by: Valery Sedletski on August 01, 2018, 11:39:28 pm
2Roderick Klein:

> Well one thing that is easier about ArcaOS and putting in drivers the user data is that you no longer have to deal with license number you have to enter. Having worked (note I no longer work @Mensys) on eCS the license key was not working to bad. But for some people it was a not that easy to enter the 40 or so character registration key in the installer.

eCS license key can be picked up from the hard disk or flash stick, so you never need to enter it manually. Branding the user name in some binaries is needed solely for copy protection. Also, it seems that user name is encrypted. So, this is obviously not for the purpose of making user's life easy. It's needed because user will be shy to share his drivers with anybody else, because copy owner's name is can be seen easily during the boot.

> As for your statement that 16 and 32 bit driver library is closed source most likely duo to the DDK license.
In this file Drv16-20161010.zip (download here https://88watts.net/software.html) is a readme file:

> "The Drv16 Kit is a derivative work of the IBM DDK. You must have a IBM"
DDK license to use this software.
Anyway for the the 32 bit and 16 bit driver they have a library and a presentation on how to write drivers:
http://www.warpstock.eu/images/2015/presentations/David_Azarewicz-WSE2015_Writing_Device_Drivers.pd

> Anyway again it might be the age old problem this caused the orginally IBM DDK license.

DRV16 and DRV32 are _closed_source_. DANIS506 and AHCI are licensed as GPL/LGPL, so they cannot be combined with closed source parts. All modifications to GPL code should be published in source form. DDK license does not mean that the source code should be closed. IBM published DDK for developer's convenience. DDK license does not contain any restrictions. Moreover, IBM didn't put any license into DDK. So, it is published "as is", but without any restrictions. Yes, no license was put into DDK. There are some copyright notices in headers/sources, but IBM simply forgot to put a license there.

> As for your last statement that Arca Noae picked FreeBSD so they do not have to make the source code public.
They had a different reason, a technicall on. When I worked with David Azarewicz at Mensys on eCS the Wireless NIC driver based on Linux sources ended up being dead. Why ? The Linux guys had made such many changes to the sources you could no longer recompile the sources.

Yes, Linux driver sources change continuously together with Linux kernel version. They make changes into kernel interfaces constantly. So, e.g., UNIAUD32 sources must adapt to each Linux kernel version constantly. FreeBSD has much stable kernel interfaces. This is one of the reasons, but not the main one. The main reason is that BSD license allows to not publish the sources. This allows to make the OS/2 community dependent from them.

Title: Re: IBM DDK License Discussion
Post by: Valery Sedletski on August 01, 2018, 11:47:12 pm
2Martin Iturbide: Where did you took this https://www.os2world.com/wiki/index.php/IBM_OS/2_Products_Licensing_Analysis#IBM_Device_Driver_Kit_-_2004 DDK license text? I mean, which file in the source tree it is? I cannot find it in my DDK distribution. As far as I know, IBM did not put any license into the DDK, only short copyright notices in some headers/sources.
Title: Re: IBM DDK License Discussion
Post by: Martin Iturbide on August 01, 2018, 11:59:39 pm
Hi Valery

Can you please elaborate this?
DDK license does not mean that the source code should be closed. IBM published DDK for developer's convenience. DDK license does not contain any restrictions. Moreover, IBM didn't put any license into DDK. So, it is published "as is", but without any restrictions. Yes, no license was put into DDK. There are some copyright notices in headers/sources, but IBM simply forgot to put a license there.

In my knowledge the IBM Device Driver Kit (IBM DDK), on the versions I was able to find, was governed under this license (https://www.os2world.com/wiki/index.php/IBM_OS/2_Products_Licensing_Analysis#IBM_Device_Driver_Kit_-_2004).  There are also the sample source code on the IBM toolkit that is "AS IS" but it was not device driver samples. I was not able to find the source of any packaging of the IBM device driver source samples that are under a different license of use for the moment.

I'm still trying to find the older versions IBM Device Driver Kit CDs and to check which license do they have.  I want to see if we can find IBM device source code samples that are compatible with open source licensing even if they are older than Warp 3. Help is always welcome.

For the moment the solution of a "close source but collaborative project" is the only thing that I find satisfactory with the information that I have and based on a ground where we want to respect copyrights to don't have legal problems.

Regards

Title: Re: IBM DDK License Discussion
Post by: Valery Sedletski on August 02, 2018, 12:10:05 am
2Martin Iturbide:

I mean that DDK copy I have does not have any license put into it. I asked you to point me, where the above license text is taken from? You don't seem to know that. Maybe, someone will point me to a DDK copy (on archive.org, or elsewhere) having such a license together with the distribution? I have a copy from about 2004/2006, and this copy does not have any license. So, I need to have any proof that the above license text is supplied with some DDK version.
Title: Re: IBM DDK License Discussion
Post by: Martin Iturbide on August 02, 2018, 12:25:34 am
Hi Valery

The source code may not have a license on the headers, but the IBM DDK package that I know was governed by the license that I'm showing, and it was located at some HTML page that you need to agree to go the drivers. I had validated that in two places.
1) The IBM DDK CD from 2004. It has an HTML index page where you need to agree to that license to go to the files.
2) The registration on the free IBM DDK Website (IBM Developer Connection Device Driver Kit
for OS/2 - 1998 (http://file:///D:/Temporal/1.-OS2/DDK/os2ddk/index.htm)). When you accessed the source code you need to agreed to that license.

There was also the "IBM Developer Connection Device Driver Kit for OS/2 (http://www.edm2.com/index.php/IBM_Developer_Connection_Device_Driver_Kit_for_OS/2)", which I don't have a CD of it, that also was governed to the IBM DDK license according to the EDM/2.

Before the "IBM Developer Connection Device Driver Kit for OS/2" there was the "Device Driver Source Kit for OS/2" (1993-1995) , which I'm trying to find a copy to check the license it includes.

Regards
Title: Re: IBM DDK License Discussion
Post by: Valery Sedletski on August 02, 2018, 12:56:45 am
2Martin Iturbide:

OK, I see. I did not looked into HTML files, I searched inside .ZIP's and found nothing.
Title: Re: IBM DDK License Discussion
Post by: Rich Walsh on August 02, 2018, 05:03:54 am
What nobody ever seems to notice is the line I've emphasized in this section :
Quote
4. Non-Disclosure

You expressly undertake to retain in trust and confidence all information and know-how transmitted to you by IBM that IBM has identified as proprietary or confidential or that by the nature of the circumstances surrounding the disclosure ought in good faith to be treated as proprietary or confidential, (including, but not limited to, source code) and you agree that you will make no use of such information and know-how except under the terms of this agreement. You are required to execute appropriate written agreements with your employees, consultants and distributors sufficient to enable you to comply with all provisions of this agreement. The above non-disclosure provisions shall terminate when the confidential information or source code becomes publicly available through no fault of yours or for a period of 10 years from disclosure. In addition, you agree to maintain adequate procedures to prevent loss of any materials contained in the Product. You agree to notify IBM of any such loss immediately.

The "or" in that sentence makes it difficult to really understand what they are saying. However, it sure seems like the requirement to keep IBM's code confidential becomes null and void if it becomes common knowledge. Given that copies of the DDK have been freely available on the net for years (and thus, "disclosed"), it's hard to see how any of these licensing strictures still apply.

If I were a direct licensee of IBM like Arca Noae, I wouldn't want to test this interpretation. However, a 3rd-party with no direct connection to IBM should probably feel free to do whatever he wishes with his DDK-based code, including making it open-source.
Title: Re: IBM DDK License Discussion
Post by: Greg Pringle on August 02, 2018, 03:03:31 pm
The whole "license" issue from IBM is a mess.

I used to have a developer connection to IBM. There were no restrictions put on any of my code. Explicitly I could use the IBM libraries to develop for any OS/2 system. At no time did IBM own the code being developed by me. Only the acquistion of the developer libraries were restricted. Later, many of the same IBM libraries were openly distributed. So, what could possibly be the meaning of a non-disclosure.

IBM already "disclosed" the software when it was made available to the public.
If there is any restriction it could be that IBM retains the distribution rights to the libraries and the libraries source. If that is true then supplying the libraries to others or de-compiling them would be restricted.

The DDK was put on public boards by IBM at the end of OS/2, not just programmer boards.
Title: Re: IBM DDK License Discussion
Post by: Martin Iturbide on August 02, 2018, 03:18:33 pm
Hi Greg

I used to have a developer connection to IBM. There were no restrictions put on any of my code. Explicitly I could use the IBM libraries to develop for any OS/2 system. At no time did IBM own the code being developed by me. Only the acquistion of the developer libraries were restricted. Later, many of the same IBM libraries were openly distributed. So, what could possibly be the meaning of a non-disclosure.

If you have any older Developer Connection CD please let me know. I want to check the license of it. The changed to the IBM Code and the device driver samples are always yours for what I understand. If we find some of the device driver samples (IBM Code) under an older license distribution, that may be similar  to the IBM Toolkit license, it will be compatible with open source and it will be a base to build drivers from there, even if those are older versions.

I guess that the libraries and tool (binaries) of the IBM DDK package will be close source but at least at some point of time those were provided as freeware by IBM (Evidence (https://web.archive.org/web/19990128235002/http://service.software.ibm.com:80/ddk/)).

Regards
Title: Re: IBM DDK License Discussion
Post by: Greg Pringle on August 02, 2018, 07:41:45 pm
I don't remember having the CD with the DDK.
I had a login to the Developer Connection website and would download the items allowed.
A copy of the DDK from 2003 is the first I have found and it has a section under:
useddk->Notices->Disclaimers
which in effect says to call IBM if you are writting programs and want to know if there is a fee.
Title: Re: IBM DDK License Discussion
Post by: Roderick Klein on August 02, 2018, 09:20:25 pm
Hi Greg

I used to have a developer connection to IBM. There were no restrictions put on any of my code. Explicitly I could use the IBM libraries to develop for any OS/2 system. At no time did IBM own the code being developed by me. Only the acquistion of the developer libraries were restricted. Later, many of the same IBM libraries were openly distributed. So, what could possibly be the meaning of a non-disclosure.

If you have any older Developer Connection CD please let me know. I want to check the license of it. The changed to the IBM Code and the device driver samples are always yours for what I understand. If we find some of the device driver samples (IBM Code) under an older license distribution, that may be similar  to the IBM Toolkit license, it will be compatible with open source and it will be a base to build drivers from there, even if those are older versions.

I guess that the libraries and tool (binaries) of the IBM DDK package will be close source but at least at some point of time those were provided as freeware by IBM (Evidence (https://web.archive.org/web/19990128235002/http://service.software.ibm.com:80/ddk/)).

Regards

I lost the license agreement I once printed I think it was somewhere around the year 2000 when the DUDE from IBM was still open. You could also register free of charge to get the DDK. However you did need to agree to the standard DDK license which has always seem to have the had same limitations in terms of making any source code public.

Roderick
Title: Re: IBM DDK License Discussion
Post by: Andy Willis on August 03, 2018, 07:39:16 am
2Martin Iturbide:

OK, I see. I did not looked into HTML files, I searched inside .ZIP's and found nothing.

Back when I got my copy of the DDK, you had to click on the I Agree to gain access to the DDK itself but as far as I could find the license was not in the distribution that I downloaded from IBM.  The page in the HTML directory of the 2004 CD was taken directly from the page you would have to go to to gain access to the DDK, down to having the buttons at the bottom for agree or disagree.
Title: Re: IBM DDK License Discussion
Post by: Andy Willis on August 03, 2018, 07:43:32 am
I guess that the libraries and tool (binaries) of the IBM DDK package will be close source but at least at some point of time those were provided as freeware by IBM (Evidence (https://web.archive.org/web/19990128235002/http://service.software.ibm.com:80/ddk/)).
Regards
It was free but you  had to register, which took you to the license page that had the license text you reference above.  It then had I agree and I disagree buttons.  Clicking I Agree took you to the download of the DDK, back then you had to download several zip files to get it all.
Title: Re: IBM DDK License Discussion
Post by: OS4User on August 03, 2018, 08:40:30 am
I guess that the libraries and tool (binaries) of the IBM DDK package will be close source but at least at some point of time those were provided as freeware by IBM (Evidence (https://web.archive.org/web/19990128235002/http://service.software.ibm.com:80/ddk/)).
Regards
It was free but you  had to register, which took you to the license page that had the license text you reference above.  It then had I agree and I disagree buttons.  Clicking I Agree took you to the download of the DDK, back then you had to download several zip files to get it all.

Once I did  such a registration and downloaded DDK files for free.  But I was not given any license number.  How can I prove that I am a legal DDK user if  some body asks ?

Title: Re: IBM DDK License Discussion
Post by: Andy Willis on August 03, 2018, 09:26:34 am
I guess that the libraries and tool (binaries) of the IBM DDK package will be close source but at least at some point of time those were provided as freeware by IBM (Evidence (https://web.archive.org/web/19990128235002/http://service.software.ibm.com:80/ddk/)).
Regards
It was free but you  had to register, which took you to the license page that had the license text you reference above.  It then had I agree and I disagree buttons.  Clicking I Agree took you to the download of the DDK, back then you had to download several zip files to get it all.

Once I did  such a registration and downloaded DDK files for free.  But I was not given any license number.  How can I prove that I am a legal DDK user if  some body asks ?
I don't recall receiving any license over even an email upon registering (I could have gotten one and lost it by now but looked and didn't find one).  It may have been that if you accepted the agreement then you could download the files and if you had the files it was because you had accepted the agreement but I don't recall.
Title: Re: IBM DDK License Discussion
Post by: Andi B. on August 03, 2018, 09:42:27 am
Quote
How can I prove that I am a legal DDK user if  some body asks ?
Who do you think will ask? You wouldn't have your copy if you did not have 'Agree'ed back then when you downloaded it like I did. I know I had to click 'Agree' at the bottom of a long text before I got to the page where I could download the files. In theory IBM may have recorded my IP but I think no one will and can trace back which IP the company used about 15 years ago when I downloaded it. Maybe I had to register with an email address but I don't know anymore.

You do not have to prove that you do nothing illegal. It's the other way around - you are not guilty until someone proves you are. That's the way the justice works in civilized countries (of course we know some arguments from some people are taken more serious than others but that's hardly related here).

Anyway you're restricted to the license you 'Agree'ed independently if you still remember the wording. I don't. But I'm pretty sure it does not allow me to share copies of the sources but I can build my own drivers with them and share the binaries. The sources include -
Code: [Select]
/*    You may use this code in accordance with the IBM License      */
/*    Agreement provided in the IBM Developer Connection Device Driver       */
So if I ever would share my sourced build upon the DDK I would have to search for that.

Btw. my copy does not include a license other then the note above.
Title: Re: IBM DDK License Discussion
Post by: Martin Iturbide on August 03, 2018, 03:33:46 pm
What nobody ever seems to notice is the line I've emphasized in this section :
Quote
4. Non-Disclosure

You expressly undertake to retain in trust and confidence all information and know-how transmitted to you by IBM that IBM has identified as proprietary or confidential or that by the nature of the circumstances surrounding the disclosure ought in good faith to be treated as proprietary or confidential, (including, but not limited to, source code) and you agree that you will make no use of such information and know-how except under the terms of this agreement. You are required to execute appropriate written agreements with your employees, consultants and distributors sufficient to enable you to comply with all provisions of this agreement. The above non-disclosure provisions shall terminate when the confidential information or source code becomes publicly available through no fault of yours or for a period of 10 years from disclosure. In addition, you agree to maintain adequate procedures to prevent loss of any materials contained in the Product. You agree to notify IBM of any such loss immediately.

The "or" in that sentence makes it difficult to really understand what they are saying. However, it sure seems like the requirement to keep IBM's code confidential becomes null and void if it becomes common knowledge. Given that copies of the DDK have been freely available on the net for years (and thus, "disclosed"), it's hard to see how any of these licensing strictures still apply.

If I were a direct licensee of IBM like Arca Noae, I wouldn't want to test this interpretation. However, a 3rd-party with no direct connection to IBM should probably feel free to do whatever he wishes with his DDK-based code, including making it open-source.

Hi Rich

I also saw that but for me it is hard to interpreter that phrase. "The above non-disclosure provisions shall terminate when the confidential information or source code becomes publicly available through no fault of yours or for a period of 10 years from disclosure. ".  It seem to me that when IBM released for free download  (with registration) the IBM Code it marks the time the disclosure, and that is not our fault :)    It may look like legally, since it s more than 10 years of that, it does not matter if the source code of the derivative works is shared or not, but that is just my interpretation of the text. (Lawyers revision is advised)

For sure the "4. Non-Disclosure" was created for the old non-internet days.

Regards
Title: Re: IBM DDK License Discussion
Post by: Martin Iturbide on August 03, 2018, 03:41:47 pm
Hi

I would like to see a copy of the "Device Driver Source Kit for OS/2 (http://www.edm2.com/index.php/Device_Driver_Source_Kit_for_OS/2)" to see which license does it has.  There was versions 1.0 (Jul 1993),  1.1 ,  1.2 (Feb 1994) - CD P/N: S71G-3703-02. If someone has it please let me know if (Contact me in public or privately).

And it will also be interesting to know how OS/2 Device Drivers sample source code was distributed before of Jul 1993. It will be nice to know the license and also maintain the chronology at EDM/2 wiki.

Regards
Title: Re: IBM DDK License Discussion
Post by: xynixme on August 04, 2018, 04:20:06 pm
Quote
it will also be interesting to know how OS/2 Device Drivers sample source code was distributed before of Jul 1993.

How old is DevCon 1?