-
Notifications
You must be signed in to change notification settings - Fork 29.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Downgrade to npm v9.6.4 or v9.6.5 to avoid potential licensing issues #49625
Comments
I am happy to help with this 👍 Update: Starting a fast brainstorming here and first output from the licenses included in all the sub-dependencies from the npm cli
The ones highlighted does not seems OSI Approved Licenses 🤔 Here are the relevant packages:
Updated! Great catch @ruyadorno. Now is updated |
@ljharb @RafaelGSS is the license checker part of the OpenSSF badge? |
probably worth have a check if license changed in the deps update workflow or license builder? Although its not the case of npm which is an exception |
cc @isaacs can we have permission to use that dependency under the regular MIT license perhaps? |
I believe you have to narrow it down to |
@mcollina its not; but i can trivially create a github action for it with licensee, and i can suggest OpenSSF add the requirement. |
I'm sure there are several packages that do license finding/checking. For example, my team in Red Hat have https://github.com/nodeshift/npcheck which we use for our own modules. Creating a {
"modules": [
{
"name": "npm",
"npmLink": "https://www.npmjs.com/package/npm"
}
],
"licenses": {
"allow": [
"Apache 2.0",
"Apache-2.0",
"Artistic-2.0",
"BSD-2-Clause",
"BSD-3-Clause",
"CC-BY-3.0",
"CC0-1.0",
"ISC",
"MIT"
],
"rules": {}
}
} NPCheck Report
(1): The module "npm" depends on the "jackspeak@2.2.1" package which is under the non-acceptable license "BlueOak-1.0.0". - ERROR
(2): The module "npm" depends on the "path-scurry@1.10.1" package which is under the non-acceptable license "BlueOak-1.0.0". - ERROR
... |
I cannot see any reasons why BlueOak-1.0.0 should not be allowed in FOSS, bcos it very much, such state-of-the-art permissive license. And unless legal team aka practical law object to it, I barely can see any issue here. |
FYI rolling back to v9.6.4 doesn't fix this at path-scurry has always been blue-oak We would have to go back to v9.6.2 which has issues re: vulnerabilities
I would really like us to move forward with including npm as is. This license issue has been in Node.js 18 since v18.15.0 (released in March) and in Node.js 20 since v20.0.0. It is already impacting both lines and we have had no external complaints yet. This is not to say that we should not figure out a solution, but that I don't think we should block landing npm on this. Let's figure out if Blue Oak is considered acceptable by OpenJS as discussed in this issue and collaborate on a solution for glob, which is a widely used module in the ecosystem |
Getting it approved by OSI (which has a thorough review process that includes legal experts) would really help. The process is here: https://opensource.org/licenses/review-process/ Also see related discussion in the mailing list here: https://lists.opensource.org/pipermail/license-discuss_lists.opensource.org/2019-July/020901.html |
@tobie that discussion is over 4 years old. Ultimately I think the solution we may have to explore here is finding an alternative to glob in npm or forking glob, something that would be a fairly significant under taking. We need a solution to this today that can work moving forward, pushing a license through to acceptance within the OSI is not a short term solution that can work. |
I am afraid there is no solution to replace |
The approval process at OSI is fairly short (a few months). It has not been started. That thread is just a discussion about the license. No approval request was ever made as far as I can see. |
@bricss glob itself is not Blue Oak, only the two dependencies. So a solution could be (preferably temporarily) to fork glob and replace the two dependencies licensed as blue oak |
Sorry for creating a bunch of confusion earlier. The IP Policy is quite clear about what the process is in a situation like this one:
The Board is sovereign to make those decisions and communicate them privately to the project and the CPC really doesn't need to be involved. Hopefully, you'll hear from the board shortly via @mcollina. Separately, if folks believe that the lack of OSI certification of the BlueOak license is going to cause issues with users, I detailed the process to follow to get the license approved here. Feel free to reach out if you have questions with the process. |
No. I am willing to sell proprietary licenses for a reasonable rate to any organizations that are interested, if my choice of oss license is a blocker. But it would not be MIT, because such a license would be granted to everyone receiving it, by design. Blue Oak gives you all the permissions you need to use, extend, and distribute the code, and has several protections and features that I appreciate. If I am going to manage admin and custom licenses, that is work, not play. I am happy to do it, but not for free. I do intend to make glob Blue Oak as well, along with the rest of my projects. I haven't gotten around to doing a careful analysis of the codebase and history to ensure I wouldn't be violating any past contributors' rights by doing so, and I like to err on the side of being overly cautious with that sort of thing. |
(@isaacs I didn't tag you in this issue specifically because you made your position pretty clear in the past, so it was moot. I'm mostly concerned about the the policy of the Foundation and the expectations of our downstream consumers). |
If Blue Oak isn't yet OSI-approved, doesn't that mean it's not yet an OSS license? |
That is an arbitrary and contradictory position. A license doesn't become "open source" when the OSI approves it. The OSI approves it when it recognizes that it meets the criteria of being open source. If the license is not OSS before being recognized as such, then the recognition by the OSI would be in error. |
While you're certainly the best kind of correct, I think that the commonly understood definition of "open source license" includes the qualifier "OSI-approved". |
The update to npm v9.6.6 #47862 introduced a new license BlueOak-1.0.0 that's not approved by the OpenJS Foundation IP policy https://openjsf.org/wp-content/uploads/sites/84/2019/10/OpenJS-Foundation-IP-Policy-2019-10-22.pdf.
The approved licenses are:
http://www.apache.org/licenses/LICENSE-2.0)
This mostly matches the typical policy in companies.
I already asked the OpenJS Foundation Board for license approval and notified the npm team (@MylesBorins).
Out of prudence, I think it would be better to revert that PR in Node v18 because it's the only LTS release currently supported, and quite a few of our enterprise users would have trouble using such a license, making it hard for them to use Node.js.
I would also recommend we implement a license checker tool to avoid future issues.
cc @nodejs/releasers @nodejs/tsc
The text was updated successfully, but these errors were encountered: