论文标题

从一个到数百:JavaScript生态系统中的多许可

From One to Hundreds: Multi-Licensing in the JavaScript Ecosystem

论文作者

Moraes, João Pedro, Polato, Ivanilton, Wiese, Igor, Saraiva, Filipe, Pinto, Gustavo

论文摘要

开源许可创建了一个法律框架,该框架在广泛采用开源项目中起着至关重要的作用。没有许可证,就无法(重新)分发Internet上的任何源代码。尽管最近的研究提供了证据表明大多数受欢迎的开源项目都具有许可证,但开发人员在需要结合软件许可时可能会缺乏信心或专业知识,从而导致项目许可证统一错误。该许可使用受到现代软件开发实践中的高度重复使用的挑战,发生在现代软件开发实践的中心,在哪些方面和框架中迅速建立了一个稳定的scemiot of Sceario,我们可以在哪些方面进行了启发。当一个项目具有根据多个许可证许可的组件时。尽管这些组件存在于文件级别,但它们自然会影响项目级别的许可决策。在本文中,我们进行了一项混合方法研究,以阐明这些问题。我们首先解析1,426,263(源代码和非源代码)文件,可在1,552个JavaScript项目上提供,寻找许可证信息。在这些项目中,我们观察到947个项目(61%)拥有多个许可证。平均而言,每个研究项目有4.7个许可证(最大:256)。多许可的原因之一是将第三方库的源代码纳入项目代码库中。这样做时,我们观察到373个多许可项目引入了至少一个许可证不兼容问题。我们还对这些项目的83个维护者进行了调查,该项目旨在跨越我们的发现。我们观察到,有63%的被调查维护者不知道多许可的含义。对于那些知道的人,他们采用多个许可证,主要是为了符合第三方图书馆的许可。

Open source licenses create a legal framework that plays a crucial role in the widespread adoption of open source projects. Without a license, any source code available on the internet could not be openly (re)distributed. Although recent studies provide evidence that most popular open source projects have a license, developers might lack confidence or expertise when they need to combine software licenses, leading to a mistaken project license unification.This license usage is challenged by the high degree of reuse that occurs in the heart of modern software development practices, in which third-party libraries and frameworks are easily and quickly integrated into a software codebase.This scenario creates what we call "multi-licensed" projects, which happens when one project has components that are licensed under more than one license. Although these components exist at the file-level, they naturally impact licensing decisions at the project-level. In this paper, we conducted a mix-method study to shed some light on these questions. We started by parsing 1,426,263 (source code and non-source code) files available on 1,552 JavaScript projects, looking for license information. Among these projects, we observed that 947 projects (61%) employ more than one license. On average, there are 4.7 licenses per studied project (max: 256). Among the reasons for multi-licensing is to incorporate the source code of third-party libraries into the project's codebase. When doing so, we observed that 373 of the multi-licensed projects introduced at least one license incompatibility issue. We also surveyed with 83 maintainers of these projects aimed to cross-validate our findings. We observed that 63% of the surveyed maintainers are not aware of the multi-licensing implications. For those that are aware, they adopt multiple licenses mostly to conform with third-party libraries' licenses.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源