镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content
This repository was archived by the owner on Nov 17, 2023. It is now read-only.
This repository was archived by the owner on Nov 17, 2023. It is now read-only.

[1.8.x] LICENSE needs update/review #19427

Closed

Description

@samskalicky

Description

Per the discussion on Apache general regarding the v1.8.0.rc1 vote, we need to review and update our license file.

We need to review each 3rdparty submodule's LICENSE and update the corresponding entries in the MXNet LICENSE file:

For each submodule, we need to verify that all entries in that LICENSE file is included in our MXNet license file.

Activity

  1. leezu commented on Oct 26, 2020

    @leezu
    Contributor

    An alternative is to stop redistributing the 3rdparty code an provide scripts for users to download the 3rdparty code during / before build configuration.

  2. kpuatamazon commented on Oct 26, 2020

    @kpuatamazon
    Contributor

    Regarding intgemm, I think #19406 covers me. MIT (most code) and Boost and explicitly mentioned.

  3. samskalicky commented on Oct 26, 2020

    @samskalicky
    ContributorAuthor

    Regarding intgemm, I think #19406 covers me. MIT (most code) and Boost and explicitly mentioned.

    Thanks! Marked integemm as done.

  4. szha commented on Oct 26, 2020

    @szha
    Member

    mshadow has already been handled with the merge. it's not whitelisted in rat-exclude and it's not actually 3rdparty anymore.

  5. szha commented on Oct 27, 2020

    @szha
    Member

    @PatricZhao could someone on your team help verify mkldnn licenses?

  6. samskalicky commented on Oct 27, 2020

    @samskalicky
    ContributorAuthor

    mshadow has already been handled with the merge. it's not whitelisted in rat-exclude and it's not actually 3rdparty anymore.

    Thanks @szha does this apply to ctc_include too?

  7. ptrendx commented on Oct 27, 2020

    @ptrendx
    Member

    There was no change in nvidia_cub licensing.

    For onnx-tensorrt - there is a change to pybind licensing (3rdparty of onnx, which is 3rdparty of onnx-tensorrt), resolving #15547.

  8. samskalicky commented on Oct 27, 2020

    @samskalicky
    ContributorAuthor

    For onnx-tensorrt - there is a change to pybind licensing (3rdparty of onnx, which is 3rdparty of onnx-tensorrt), resolving #15547.

    Does this change include the issues raised in the email thread? Is the pybind license up-to-date with these files:

    1. ./3rdparty/onnx-tensorrt/third_party/onnx/third_party/pybind11/tests/test_gil_scoped.cpp
    2. ./3rdparty/onnx-tensorrt/third_party/onnx/third_party/pybind11/tests/test_tagbased_polymorphic.cpp
    3. ./3rdparty/onnx-tensorrt/third_party/onnx/third_party/pybind11/tests/test_union.cpp
  9. sandeep-krishnamurthy commented on Oct 27, 2020

    @sandeep-krishnamurthy
  10. Zha0q1 commented on Oct 27, 2020

    @Zha0q1
    Contributor

    it looks like ctc_include has not been changed since Oct 2018. it uses the exact same apache 2.0 license as ours except for this line at the end of their license file

      Copyright 2015-2016, Baidu USA LLC.
    

    we have this

    4. Warp-CTC - For details, see, 3rdparty/ctc_include/LICENSE
             Copyright 2015-2016, Baidu USA LLC.
    

    Update: ctc_include in turn includes morderngpu and we have this in our license:

    3. Moderngpu - For details, see, 3rdparty/ctc_include/contrib/moderngpu/LICENSE
             Copyright (c) 2013, NVIDIA CORPORATION.  All rights reserved.
    
    
  11. 4 remaining items

  12. access2rohit commented on Oct 27, 2020

    @access2rohit
    Contributor

    The following files in dlpack

    ./3rdparty/dlpack/contrib/mock_c.c
    ./3rdparty/dlpack/contrib/mock_main.cc 
    

    have

    // Copyright by contributors
    

    instead of

    Copyright 2017 by Contributors
    

    as written in MXNet License file

        5. 3rdparty/dlpack - For details, see, 3rdparty/dlpack/LICENSE
             Copyright 2017 by Contributors
    

    Wee need to add another line

    Copyright by contributors
    

    to point 5 in our license file

  13. waytrue17 commented on Oct 27, 2020

    @waytrue17
    Contributor

    For dmlc-core, we have the following items that are not included in our license:
    dmlc-core/include/dmlc/any.h: Copyright (c) 2016 by Contributors
    dmlc-core/include/dmlc/build_config_default.h: Copyright (c) 2018 by Contributors
    dmlc-core/include/dmlc/endian.h: Copyright (c) 2017 by Contributors
    dmlc-core/include/dmlc/strtonum.h: Copyright (c) 2015-2018 by Contributors

  14. leezu commented on Oct 27, 2020

    @leezu
    Contributor

    @sandeep-krishnamurthy I think the main issue here is that our LICENSE file may not currently list all dependencies of dependencies (submodules of the submodules). We can refer to "Dependencies of dependencies" section of https://infra.apache.org/licensing-howto.html

    Dependencies of dependencies (including so-called "transitive dependencies") are no different from first-order dependencies for the purposes of assembling LICENSE and NOTICE: LICENSE and NOTICE need only be modified to accommodate them only if their bits are bundled.

  15. mseth10 commented on Oct 28, 2020

    @mseth10
    Contributor

    Found the following four LICENSE files for 3rdparty/googletest

    1. In googletest/LICENSE
      Copyright 2008, Google Inc.
      (No corresponding entry in MXNet license file)
    2. Googletest
      In googletest/googletest/LICENSE:
      Copyright 2008, Google Inc.
      vs
      In MXNet license file:
      Copyright 2005-2015, Google Inc.
    3. Googlemock
      In googletest/googlemock/LICENSE:
      Copyright 2008, Google Inc.
      vs
      In MXNet license file:
      Copyright 2006-2015, Google Inc.
    4. googlemock scripts/generator
      In googletest/googlemock/scripts/generator/LICENSE:
      Copyright [2007] Neal Norwitz
      Portions Copyright [2007] Google Inc.
      vs
      In MXNet license file:
      Copyright [2007-2009] Neal Norwitz
      Portions Copyright [2007-2009] Google Inc.

    MXNet license file gives a range of years that includes the 3rd party copyright year. Is this acceptable? Or should we update it to exactly match the 3rdparty files? @leezu @szha @samskalicky

  16. bartekkuncer commented on Oct 28, 2020

    @bartekkuncer
    Contributor

    @szha @PatricZhao

    For mkldnn we have:
    12. 3rdparty/mkldnn - For details, see, 3rdparty/mkldnn/LICENSE
    Copyright 2016-2019 Intel Corporation
    Copyright 2018 YANDEX LLC

    which is consistent with their LICENSE file, but there is also:
    "Copyright 2020 Arm Limited and affiliates." in blas.cmake and .drone.yml files;
    "Copyright 2020 Intel Corporation" and "Copyright 2016/7/8/9-2020 Intel Corporation" in many mkldnn files

    For its submodules:
    2. gtest - For details, see, 3rdparty/mkldnn/tests/gtests/gtest/LICENSE
    Copyright 2005-2008, Google Inc.

    where there is also "Copyright 2015, Google Inc." listed in mkldnn/THIRD-PARTY-PROGRAMS

    9. CMake FindCUDAToolkit.cmake, FindOpenCL.cmake - For details, see,
    cmake/upstream/FindCUDAToolkit.cmake
    cmake/upstream/select_compute_arch.cmake
    3rdparty/mkldnn/cmake/FindOpenCL.cmake
    Copyright 2000-2019 Kitware, Inc. and Contributors

    where there is also "Copyright 2000-2020 Kitware, Inc. and Contributors"

    19. Benchdnn - For details, see 3rdparty/mkldnn/tests/benchdnn/README.md
    Copyright 2017-2018 Intel Corporation

    where there is "Copyright 2017-2020 Intel Corporation" in benchdnn files

    Not listed in our license but listed in mkldnn/THIRD-PARTY-PROGRAMS:
    Boost C++ Libraries:
    Copyright 2005-2014 Daniel James.
    Should it be added or is this one unnecessary?

  17. Zha0q1 commented on Oct 28, 2020

    @Zha0q1
    Contributor

    openmp uses a customized version of the Apache License v2.0

    ==============================================================================
    The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
    ==============================================================================
    

    Specifically

    ---- LLVM Exceptions to the Apache 2.0 License ----
    
    As an exception, if, as a result of your compiling your source code, portions
    of this Software are embedded into an Object form of such source code, you
    may redistribute such embedded portions in such Object form without complying
    with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
    
    In addition, if you combine or link compiled forms of this Software with
    software that is licensed under the GPLv2 ("Combined Software") and if a
    court of competent jurisdiction determines that the patent provision (Section
    3), the indemnity provision (Section 9) or other Section of the License
    conflicts with the conditions of the GPLv2, you may retroactively and
    prospectively choose to deem waived or otherwise exclude such Section(s) of
    the License, but only in their entirety and only with respect to the Combined
    Software.
    

    I am not sure if we should mention this in our License.
    ~
    ~
    ~
    ~
    Besides, openmp also has the following Licenses that are NOT included in our license file:
    1.

    ==============================================================================
    Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
    ==============================================================================
    
    The software contained in this directory tree is dual licensed under both the
    University of Illinois "BSD-Like" license and the MIT license.  As a user of
    this code you may choose to use it under either license.  As a contributor,
    you agree to allow your code to be used under both.  The full text of the
    relevant licenses is included below.
    
    In addition, a license agreement from the copyright/patent holders of the
    software contained in this directory tree is included below.
    
    University of Illinois/NCSA
    Open Source License
    
    Copyright (c) 1997-2019 Intel Corporation
    
    All rights reserved.
    
    Developed by:
        OpenMP Runtime Team
        Intel Corporation
        http://www.openmprtl.org
    
    Permission is hereby granted, free of charge, to any person obtaining a copy of
    this software and associated documentation files (the "Software"), to deal with
    the Software without restriction, including without limitation the rights to
    use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
    of the Software, and to permit persons to whom the Software is furnished to do
    so, subject to the following conditions:
    
        * Redistributions of source code must retain the above copyright notice,
          this list of conditions and the following disclaimers.
    
        * Redistributions in binary form must reproduce the above copyright notice,
          this list of conditions and the following disclaimers in the
          documentation and/or other materials provided with the distribution.
    
        * Neither the names of Intel Corporation OpenMP Runtime Team nor the
          names of its contributors may be used to endorse or promote products
          derived from this Software without specific prior written permission.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
    FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
    CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
    SOFTWARE.
    
    Copyright (c) 1997-2019 Intel Corporation
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    The above copyright notice and this permission notice shall be included in
    all copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    THE SOFTWARE.
    
    
    Intel Corporation
    
    Software Grant License Agreement ("Agreement")
    
    Except for the license granted herein to you, Intel Corporation ("Intel") reserves
    all right, title, and interest in and to the Software (defined below).
    
    Definition
    
    "Software" means the code and documentation as well as any original work of
    authorship, including any modifications or additions to an existing work, that
    is intentionally submitted by Intel to llvm.org (http://llvm.org) ("LLVM") for
    inclusion in, or documentation of, any of the products owned or managed by LLVM
    (the "Work"). For the purposes of this definition, "submitted" means any form of
    electronic, verbal, or written communication sent to LLVM or its
    representatives, including but not limited to communication on electronic
    mailing lists, source code control systems, and issue tracking systems that are
    managed by, or on behalf of, LLVM for the purpose of discussing and improving
    the Work, but excluding communication that is conspicuously marked otherwise.
    
    1. Grant of Copyright License. Subject to the terms and conditions of this
       Agreement, Intel hereby grants to you and to recipients of the Software
       distributed by LLVM a perpetual, worldwide, non-exclusive, no-charge,
       royalty-free, irrevocable copyright license to reproduce, prepare derivative
       works of, publicly display, publicly perform, sublicense, and distribute the
       Software and such derivative works.
    
    2. Grant of Patent License. Subject to the terms and conditions of this
       Agreement, Intel hereby grants you and to recipients of the Software
       distributed by LLVM a perpetual, worldwide, non-exclusive, no-charge,
       royalty-free, irrevocable (except as stated in this section) patent license
       to make, have made, use, offer to sell, sell, import, and otherwise transfer
       the Work, where such license applies only to those patent claims licensable
       by Intel that are necessarily infringed by Intel's Software alone or by
       combination of the Software with the Work to which such Software was
       submitted. If any entity institutes patent litigation against Intel or any
       other entity (including a cross-claim or counterclaim in a lawsuit) alleging
       that Intel's Software, or the Work to which Intel has contributed constitutes
       direct or contributory patent infringement, then any patent licenses granted
       to that entity under this Agreement for the Software or Work shall terminate
       as of the date such litigation is filed.
    
    Unless required by applicable law or agreed to in writing, the software is
    provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
    either express or implied, including, without limitation, any warranties or
    conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    PARTICULAR PURPOSE.
    
  18. Zha0q1 commented on Oct 28, 2020

    @Zha0q1
    Contributor

    prepared a pr #19439

  19. josephevans commented on Oct 29, 2020

    @josephevans
    Contributor

    #19440 should have all license updates consolidated for all submodules.

  20. pengzhao-intel commented on Oct 29, 2020

    @pengzhao-intel
    Contributor

    @PatricZhao could someone on your team help verify mkldnn licenses?

    @anko-intel to take care

  21. pengzhao-intel commented on Oct 29, 2020

    @pengzhao-intel
    Contributor

    @szha @PatricZhao

    For mkldnn we have:
    12. 3rdparty/mkldnn - For details, see, 3rdparty/mkldnn/LICENSE Copyright 2016-2019 Intel Corporation Copyright 2018 YANDEX LLC
    which is consistent with their LICENSE file, but there is also:
    "Copyright 2020 Arm Limited and affiliates." in blas.cmake and .drone.yml files;
    "Copyright 2020 Intel Corporation" and "Copyright 2016/7/8/9-2020 Intel Corporation" in many mkldnn files

    For its submodules:
    2. gtest - For details, see, 3rdparty/mkldnn/tests/gtests/gtest/LICENSE Copyright 2005-2008, Google Inc.
    where there is also "Copyright 2015, Google Inc." listed in mkldnn/THIRD-PARTY-PROGRAMS

    9. CMake FindCUDAToolkit.cmake, FindOpenCL.cmake - For details, see, cmake/upstream/FindCUDAToolkit.cmake cmake/upstream/select_compute_arch.cmake 3rdparty/mkldnn/cmake/FindOpenCL.cmake Copyright 2000-2019 Kitware, Inc. and Contributors
    where there is also "Copyright 2000-2020 Kitware, Inc. and Contributors"

    19. Benchdnn - For details, see 3rdparty/mkldnn/tests/benchdnn/README.md Copyright 2017-2018 Intel Corporation
    where there is "Copyright 2017-2020 Intel Corporation" in benchdnn files

    Not listed in our license but listed in mkldnn/THIRD-PARTY-PROGRAMS:
    Boost C++ Libraries:
    Copyright 2005-2014 Daniel James.
    Should it be added or is this one unnecessary?

    @ciyongch do you have any sense for this part?

  22. ciyongch commented on Oct 29, 2020

    @ciyongch
    Contributor

    Regarding 3rdparty/mkldnn, it seems there're some new files/license updates added in v1.6.4 (MX 1.8.x) compared to v1.3 (in MX 1.7.0), so we need to update the new license or statement in the top level LICENSE files to reflect the change as well.

    I've the same questions on whether the year range is sufficient or not for the Copyright statement? For example, there're several different year (range) like: 2016-2020, 2017-2020, 2018-2020, 2019-2020, 2016, 2017, 2018, 2019, 2020 used in different mkldnn files, is that acceptable to just keep the year range instead of listing all the individual different years?

  23. josephevans commented on Oct 29, 2020

    @josephevans
    Contributor

    Regarding 3rdparty/mkldnn, it seems there're some new files/license updates added in v1.6.4 (MX 1.8.x) compared to v1.3 (in MX 1.7.0), so we need to update the new license or statement in the top level LICENSE files to reflect the change as well.

    I've the same questions on whether the year range is sufficient or not for the Copyright statement? For example, there're several different year (range) like: 2016-2020, 2017-2020, 2018-2020, 2019-2020, 2016, 2017, 2018, 2019, 2020 used in different mkldnn files, is that acceptable to just keep the year range instead of listing all the individual different years?

    @ciyongch I think it's fine to just update the range of years if the copyright holder is exactly the same.

  24. ciyongch commented on Oct 30, 2020

    @ciyongch
    Contributor

    Thanks @bartekkuncer to add the missing info for mkldnn.
    Hi @samskalicky , mkldnn part should be covered by #19443, can be marked as DONE?

  25. samskalicky commented on Oct 30, 2020

    @samskalicky
    ContributorAuthor

    Thanks everyone, after the #19440 and #19443 we've covered all the submodules. We need to do better about maintaining the LICENSE when updating submodules moving forward. I'll be sure to include this in the summary for the v1.8.0 release when it completes and we can followup on the mailing list.

    Thanks again for everyone's help, it was great to see the community come together to address these issues! Cheers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions