conda-forge / msmpi-feedstock

A conda-smithy repository for msmpi.
BSD 3-Clause "New" or "Revised" License
1 stars 7 forks source link

MSMPI binary is not redistributable. #13

Closed isuruf closed 3 years ago

isuruf commented 3 years ago

cc @conda-forge/core

While MSMPI source code is under MIT license, the binary this package is distributing now is not redistributable.

b) Distribution Requirements. For any files you distribute, you must: • add significant primary functionality to it in your applications; • require distributors and external end users to agree to terms that protect it and Microsoft at least as much as this agreement; and • indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your applications, except to the extent that any claim is based solely on the unmodified distributable code.

Please remove this binary packaging and let's go back to building from source code.

jakirkham commented 3 years ago

It looks like some packages were marked broken in PR ( https://github.com/conda-forge/admin-requests/pull/260 ). Is that what is being referred to? Is this still an issue with the most recent package/recipe?

isuruf commented 3 years ago

Is that what is being referred to?

No

Is this still an issue with the most recent package/recipe?

Yes, we should delete any package that was repackaging the binary. (10.1.1 build number 3 and later)

beckermr commented 3 years ago

you mean repackaging the binary?

isuruf commented 3 years ago

Yes, sorry. We should delete any repackaged binaries as they are not redistributable.

jakirkham commented 3 years ago

Sorry still trying to wrap my head around what is being asked here. PR ( https://github.com/conda-forge/msmpi-feedstock/pull/11 ) fixed this no? So we are just wanting to delete the packages before that?

jakirkham commented 3 years ago

More generally am curious if we should be starting up a conversation with Microsoft to make packaging this less painful. We already have a few connections at GitHub, Azure, etc.. So I wonder if there is someone we can talk to about making this easier to tackle either by granting us an exception, etc.

isuruf commented 3 years ago

PR ( #11 ) fixed this no? So we are just wanting to delete the packages before that?

No. https://github.com/conda-forge/msmpi-feedstock/pull/6 moved from building from source to repackaging the binary. It's still repackaging the binary.

More generally am curious if we should be starting up a conversation with Microsoft to make packaging this less painful

MSMPI source is open source and licensed MIT. (Official installer which is binary is one patch version ahead of the open source version and is not redistributable)

leofang commented 3 years ago

@isuruf @jakirkham @beckermr Sorry for not getting back timely. I am in a rush now so I will fill in my arguments later, but for now please consider we got the permission (which I will explain later):

Anna Daly <annalabu@microsoft.com>
Fri 2021-04-30 13:47
To: Fang, Leo; MPI External Communications <askmpi@microsoft.com>
Dear Leo,

We are granting you permission to redistribute msmpi installer.

-thanks, Anna

From: Fang, Leo <leofang@bnl.gov> 
Sent: Friday, April 30, 2021 6:03 AM
To: MPI External Communications <askmpi@microsoft.com>
Subject: [EXTERNAL] Ask for permission for MS-MPI package redistribution on Conda-Forge
Importance: High

Dear MS-MPI team,

I am the msmpi and mpi4py package maintainer on Conda-Forge, and I am writing to ask for an explicit permission for redistributing MS-MPI on Conda-Forge.

Conda-Forge is an open source community effort providing tens of thousands of Python and pre-built binary packages that are Conda-installable. Conda is a packaging management solution widely used in the greater Python and R communities. I am sure even within Microsoft there is a large user base of Conda. The purpose of providing MS-MPI on Conda-Forge is to enable our Windows users to run simply MPI programs. It can be installed as simple as 

    $ conda install -c conda-forge msmpi

We have made mpi4py (a de facto MPI binding for Python) support MS-MPI for years, with the current msmpi packaging effort a Windows user can just run

    $ conda install -c conda-forge mpi4py

and the Conda solver is smart enough to follow the dependency graph and install the msmpi package if it’s not installed already.

I am writing for explicit permission because we recently switched from compiling from source to using Microsoft-provided installer. This helps us address a few issues. However, while the MS-MPI source code is released under the MIT license that permits redistribution, the installer does have a nontrivial redistribution clause that could cause potential legal problems. I am hoping to get an explicit permission from you (sooner is better!) to settle the concern. 

If it helps, the msmpi packaging effort is transparent and open-sourced at https://github.com/conda-forge/msmpi-feedstock, just like all other Conda-Forge packages under the same GitHub organization.

Thank you. I look forward to you positive reply. I can answer any questions you might have. 

Sincerely,
Leo

---
Yao-Lung Leo Fang
Assistant Computational Scientist
Computational Science Initiative
Brookhaven National Laboratory
Bldg. 725, Room 2-169
P.O. Box 5000, Upton, NY 11973-5000
Office: (631) 344-3265
Email: leofang@bnl.gov
Website: https://leofang.github.io/
isuruf commented 3 years ago

Ping on this

beckermr commented 3 years ago

@leofang I am taking point on this thread for a bit. In order of preference, I'd like to do the following.

  1. move back to building from source, avoiding the need for permission from the msmpi folks
  2. have conda-forge itself get permission for redistribution from the msmpi folks - as it stands now they have given permission to you, but not to any other maintainer nor our bots
  3. remove the repackaged binaries if neither 1 or 2 work out

@leofang Why do we need to repackage their binary at all? I couldn't find an answer to this question in the thread above or any linked issues but I may have missed it.