Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Distribution permitted of software statically linked of 8.x, BUT NOT 9.x

celli4
New Contributor I
1,658 Views

INTEL DOES NOT PERMIT DISTRIBUTION OF DEVELOPER SOFTWARE THAT STATICALLY LINKS AGAINST THE 9.x IPP ?


It appears as though the IPP 9.x software may be distributed with my software when using dynamic linking. (I am a licensee)
It appears as though the IPP 9.x software may not be distributed as part as a derivative work when linked using the IPP 9.x static libraries.

The IPP 8.x software did allow my software to be distributed when linked against the 8.x IPP static libraries.

Did this change on purpose?
DOES INTEL INTEND THAT PURCHASERS OF THE IPP 9.x ONLY BE ABLE TO USE THE
STATIC LIBRARIES INTERNALLY TO THEIR COMPANY?


Why does this appear to be the case?

The Intel Master EULA for Intel Software Development Products only
permits distribution of "Redistributables", including derivative works.

The IPP 8.x redist.txt included the ipp*.lib files in the list of Redistributables in the redist.txt file.

The IPP 9.x redist.txt does not include the ipp*.lib files in the list of Redistributables in the redist.txt file.

THIS MEANS LICENSEES OF THE IPP MAY NOT STATICALLY LINK AGAINST 9.X
AND DISTRIBUTE THE DERIVATIVE WORKS, UNLESS I MISUNDERSTAND.
IS THIS TRUE, AND IS THIS THE INTENT BY INTEL TO PROHIBIT LICENSEES
FROM STATICALLY LINKING AND DISTRIBUTING THEIR DERIVATIVE WORKS?

References:
Intel Master EULA for Intel Software Development Products
https://goo.gl/VJnqSF
Please view the redist.txt from IPP 9.x, there are no *.lib files.
Please view the redist.txt from IPP 8.x, all the *.lib files are listed.

Please comment about whether this is true or not, or please put me in contact with the correct person at Intel to confirm that Intel intends to restrict purchasers from distributing the purchasers software if it has been statically linked against the IPP 9.x *.lib files.

Thank you, Cameron

 

 

0 Kudos
16 Replies
Matthew_G_4
Beginner
1,658 Views

Could you please specify the exact section, sub-section, paragraph number; for the specific portion of the EULA/license that either states:

  • Only dynamic linking is permitted, or...
  • Static linking is specifically disallowed

I too would like to know if this is a constraint on upgrading from IPP v7 to v9.

0 Kudos
celli4
New Contributor I
1,658 Views

Matthew,

This is my understanding:

  1. The IPP falls under the Intel Master EULA for Intel Software Development Products.
  2. The current license is here: https://goo.gl/VJnqSF
  3. (I cannot locate the EULA with my installs, oddly enough)
  4. The relevant sections of the agreement is this language in 2.1.A(4), which gives you the right to distribute and publish the Redistributables, including derivative works.
  5. That appears to be the only section permitting redistribution, other than a limited right regarding Source Code, which does not apply to the *.lib files.
  6. That section gives you the right to distribute the files enumerated in the redist.txt file, and derivative works.
  7. The 9.x IPP does not include the dozens of *.lib files necessary to create statically linked DLL and EXE files in redist.txt
  8. The 8.x IPP did include include the dozens of *.lib files necessary to create statically linked DLL and EXE files in redist.txt
  9. If I understand correctly, either Intel has made a big mistake, or they have nearly nullified the value of the statically linkable *.lib libraries included in the IPP in version 9.x

Would Intel please have someone qualified to comment on this matter address this posting and the previous?

Thank you,

Cameron

 

0 Kudos
Shaojuan_Z_Intel
Employee
1,658 Views

Hi Cameron and Matthew,

Thanks for raising the concern. I will try to get the right person to look at this. Thanks for your patience!

0 Kudos
Shaojuan_Z_Intel
Employee
1,658 Views

Hi Cameron and Matthew,

Intel IPP license allows users to link their applications statically or dynamically with IPP then redistribute users' software. After static linkage, all the binaries are included in user's code (.dll or .exe files), so user doesn't need to redistribute the static libraries (*.lib) any more. May I ask why and how would you redistribute the static libraries? License doesn't allow users to copy IPP static libraries to users' package and redistribute it, but they can copy dynamically linked libraries. Hope this helps. Thanks!

0 Kudos
Matthew_G_4
Beginner
1,658 Views

Shaojuan Z. (Intel) wrote:

Hi Cameron and Matthew,

Intel IPP license allows users to link their applications statically or dynamically with IPP then redistribute users' software. After static linkage, all the binaries are included in user's code (.dll or .exe files), so user doesn't need to redistribute the static libraries (*.lib) any more. May I ask why and how would you redistribute the static libraries? License doesn't allow users to copy IPP static libraries to users' package and redistribute it, but they can copy dynamically linked libraries. Hope this helps. Thanks!

 

Ah this makes sense. So Cameron's initial statement was incorrect: IPPv9 allows static linkage into third party DLLs without requiring the source or binary objects within the third party library to be released. Thanks!

0 Kudos
celli4
New Contributor I
1,658 Views

I believe you are both wrong.

I believe the currently 9.x license does not allow users to compile the static libraries into their works, and distribute those works.

The 8.x IPP license did allow such actions.

 

 

Here is why this is the case:

1. Integrating the Intel IPP static libraries into you software creates what is called 'a derivative work' under copyright law.

2. Just because you created a 'derivative work' from someone else's intellectual property, does not mean you have the right to distribute such works.

3. The license grants users the right to distribute derivative works under 2.1.A(4), BUT IT ONLY GRANTS THE RIGHT TO DISTRIBUTE DERIVATIVE WORKS BASED UPON THE REDISTRIBUTABLES. OTHER DERIVATIVE WORKS ARE NOT INCLUDED IN SUCH GRANT OF RIGHT TO REDISTRIBUTE.

THE *.Iib FILES ARE NOT REDISTRIBUTABLES, AND THUS THE DERIVATIVE WORKS OF THE *.lib FILES ARE NOT REDISTRIBUTABLES.

Would it be possible to contract the product manager for IPP?

I could be mistaken, but if I am correct, then Intel staff is suggesting publicly that end-users and purchasers of the IPP violate the EULA for IPP, which seems like it could have serious consequences. 

0 Kudos
celli4
New Contributor I
1,658 Views

If either of you had an intellectually property lawyer review the situation, I believe you would find the license does not permit distribution of derivative works that include copyrighted works of Intel's that are not included in the "Redistributables" definitions of the Intel EULA in question.

I would love to be proven wrong, but no one has done that.

I have provided arguments citing the language and sections from the EULA, yet Shaojuan has not explained in any way why the EULA grants the rights to distribute 'derivative works' that include Intel copyrighted works, he has only said it is so. Quite frustrating and exasperating.

Please explain the section of the EULA that grants the right to distribute 'derivative works' that are not listed in the file redist.txt

 

 

0 Kudos
celli4
New Contributor I
1,658 Views

Matthew,

As a note, there is no issue using and distributing the DLL files included in the 'redist.txt' mentioned in the EULA and included in the distribution.  But I still maintain the position that if you link against any of the *.lib files, (not listed in redist.txt) and distribute the resulting derivative works, you will be violating the terms of the Intel EULA.

0 Kudos
Matthew_G_4
Beginner
1,658 Views
Could we have someone from Intel's legal team address this specific question in an official capacity? The post from Shaojuan Z, an Intel employee, seems to contradict the license terms noted by @camkego, and upon closer inspection, I agree with the comments @camkego made.
0 Kudos
Chao_Y_Intel
Moderator
1,658 Views

Matthew and camkego,

Thanks for submitting this.  We are checking with the internal team for this, and provide you more info.

Regards,
Chao Y.
Intel IPP Support

 

 

0 Kudos
Shaojuan_Z_Intel
Employee
1,658 Views

Hi Matthew and Cameron,

Sorry for the confusion! We realized that those static libraries should be added to redist.txt file. The changes in redist.txt will take effect in the next release. User applications that linked via static libraries can be redistributed, but the static library files themselves can not be redistributed. If you would like confirmation that you are allowed to statically link and redistribute your applications, we will provide you an updated redist.txt for your version of IPP. Thanks! 

0 Kudos
celli4
New Contributor I
1,658 Views

Shaojuan, thank you so much for getting to the bottom of this!

Could you please provide a complete-update or an updated redist.txt and a note stating that the redist.txt has been provided from Intel for use with IPP 9.x, so my legal obligations are addressed.

 

Thanks again,

Cameron

0 Kudos
Shaojuan_Z_Intel
Employee
1,658 Views

Hi Cameron,

I will get you an updated redist.txt for IPP 9.x. Thanks!

0 Kudos
celli4
New Contributor I
1,658 Views

Awesome, thank you.

Cameron

0 Kudos
Chao_Y_Intel
Moderator
1,658 Views

Hi Cameron, 

We are working on a new redist.txt file.   To confirm the Intel IPP package you are using,    is this the version that is used in your project?
   Intel IPP 9.0 for Windows.

Thanks,
Chao
 

 

 

0 Kudos
Chao_Y_Intel
Moderator
1,658 Views

Cameron, 
I attached the new redist.txt for latest IPP 9.0 update 3.  The static libraries are included there.   thanks again for your report.

regards,
Chao

0 Kudos
Reply