-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Re-licensing libzmq #2376
Comments
Thanks for kickstarting the process again! |
I contributed a one-line update to some documentation, is it necessary to go through an entire license grant to handle that? |
@vielmetti this is the specific commit you contributed: 92b1b2b Since it is only documentation and not a major addition to libzmq it is not required for you to send in a license grant. |
Hi, I believe my submissions were two fixes to fix compiling the FreeBSD port of zeromq. One for GCC not liking a missing newline (zeromq/zeromq4-x@2ac32f8) and one for fixing compiling with the documentation option by just shifting code (zeromq/zeromq4-1@c75cc9e). I personally don't consider either significant enough of a contribution. Good on you folks. Good luck! |
I believe i don't have to sign it, or? just added a option to zmq_has afaik, but how can i find out my contributions? |
https://github.com/zeromq/libzmq/commits?author=Asmod4n It's a few lines, so if you don't mind it would be better to. Thanks! |
Could someone elaborate what the 2nd or 3rd options could mean? I currently like the MPLv2 the most, because its compatible to pretty much every other license? |
I like MPL2 as well and it's 99/99% what is going to end up being, but given we are going through this ordeal it's worth, if the contributor agrees, to keep the options open. |
Where are we with the relicensing process? Any ETA? |
No ETA, there are still many old contributors missing. |
@sigiesec let's try to be more disciplined on this - GitHub actually helps and tells if someone is a "first time contributor" so when we see that, let's ask for the grant before merging |
@bluca Ok, I will try too :) |
It's been some time ago since I've been working on this topic as well. At the time of sending out the first request to submit a grant, I've kept track of the responses but it should be updated to include new contributors from the past couple of months as well. I'm still busy this week but will try to restart this process somewhere next week. As @bluca mentioned it indeed would be good to ask first time contributors to submit a grant before merging ;) |
@rlenferink hi - I am looking at this again. Did you have a script or set of scripts to compile the checklist? I'd be happy to run them myself |
@bluca As seen on @lalebarde account he was active on github this year. Did @lalebarde already respond concerning the re-licensing of libzmq to MPLv2? |
No answer so far |
566 grants to collect, work done within 5 years:
Is there a way to complete this task? @lalebarde @soundart @thijsterlouw @hshardeesi @guidog If you could please come forward and make a decision for the MPLv2. Thanks a lot. |
Instead of continuing to ask for relicensing statements from new PRs, it might be worth exploring the LLVM relicensing approach where all contributions after |
I have done some work to remove contributions from the authors who did not grant permissions: The two removed APIs can be made non-stubs again if somebody is able to provide a clean-room reimplementation (ie: without looking at the old code that was removed). I can review such implementations, but for obvious reasons I cannot provide them, as my knowledge is 'tainted'. |
Note that none of this is true. The new license will be MPL2, which is very much intentionally still share-alike, and in layman's terms, for all intents and purposes, provides the same terms as the current LGPL3 + custom exceptions. The main purpose is to use a 'standard' license (no custom exceptions) and harmonize with the rest of the zeromq projects which are already on MPL2. e.g.: the current license already allows using libzmq in proprietary products or networking hardware, and it already routinely happens. |
Should clean-room reimplementations of the removed features be backwards compatible in terms of how they are used? Eg code setting the CMake option for using tweetnacl, or using the reimplemented functions should continue to work without the user having to make changes to their code to use the new MPL implementations? |
Yes - note that I am referring to zmq_proxy_steerable() and ZMQ_RECONNECT_IVL_MAX. I don't see any point in adding back tweetnacl, it just causes problems and it's unsafe to use anyway. libsodium is available everywhere. I don't think anybody should spend any time on tweetnacl, but obviously I can't stop anyone from doing so. |
@lalebarde I see that you were active in the past week on Github, so one last chance to please give us permission to relicense your libzmq contributions to MPL-2.0. Your contributions are otherwise going to be deleted, and you will be removed from the zeromq Github organization. |
Relicense permission collected from all relevant authors as tallied at: https://github.com/rlenferink/libzmq-relicense/blob/master/checklist.md The relicense grants are collected under RELICENSE/ and will be moved to the above repository in a later commit. Fixes zeromq#2376
Relicense permission collected from all relevant authors as tallied at: https://github.com/rlenferink/libzmq-relicense/blob/master/checklist.md The relicense grants are collected under RELICENSE/ and will be moved to the above repository in a later commit. Fixes zeromq#2376
Relicensing has now been completed. |
@rlenferink could you please transfer ownership of the https://github.com/rlenferink/libzmq-relicense repository to me? I will then transfer it to the org here, and archive it |
Prob im - the author of ZMQ_RECONNECT_IVL_MAX |
@shripchenko assuming you have not sent a relicense grant, you could send one just to clarify any doubt, simply copy the following text in a new comment filling with your data, I'll do the rest:
|
Permission to Relicense under MPLv2This is a statement by Sergey KHripchenko aka @shripchenko A portion of the commits made by the Github handle "shripchenko", with Sergey KHripchenko |
@bluca I just transferred the repository to you for archival |
great, thank you, will fix a rebase mistake, add the license grant from above, move it to this org and archive it |
Abael He (2): Permission to Relicense under relevant approved license Problem: some tools misdetect null access or broken libsodium implementation Abama cai (2): Problem: get_opt function read the options value maybe not thread safe Add RELICENSE statement Abama.cai (1): Update tongsong-cai.md Arnaud Loonstra (2): deprecate sprint and replace with snprintf treat bind errors as a protocol_error instead of connection_error preventing an infinite loop of trying to create the udp socket as through the protocol_error the creation of the socket fails Benjamin Deroche (7): Problem: Outdated Android build tools Problem: Android build script isn't compatible with latest NDK version (#4278) Problem: Android build scripts does not work with latest NDK versions Problem: Accidentaly deleted a comment when updating Android build scripts Problem: Libs crash at runtime on Android when built with NDK 23+ Revert "Problem: Libs crash at runtime on Android when built with NDK 23+" Problem: Default Android NDK version is not aligned with zproject Bill Torpey (6): - fix formatting problems in .clang-tidy options add suppressions for clang-tidy-10 on ubuntu: ZMQ_RECONNECT_STOP options are intended to be inclusive (i.e., can be OR'ed together), and so values must be powers of two fixes for UBSAN warnings (#4223) default to not building tests if cmake version can't handle skipped tests (#4376) avoid intermittent timeouts in test (esp. when run w/ASAN etc.) Björn Strömberg (1): Problem: no relicense agreement by bjornstromberg Brett Viren (1): A clean-room implementation of zmq_proxy_steerable(). Chengye Ke (1): Support so_busy_poll (#4188) Chris Thrasher (3): Use standard C11 and C++11 Add RELICENSE statement Correct messages about whether or not the draft API is being built Cornelius (1): Problem: long flag isn't set for subscriptions if topic has between 246 and 255 characters (#4564) Daira Hopwood (1): #4494 added calls to snprintf, but did not take into account that snprintf Darkdragon-001 (2): Fix pkgconfig Add RELICENSE. David Gloe (2): Problem: Fix fork detection on gcc 7 Problem: Missing relicense statement for dgloe-hpe Dennis Gosnell (2): Problem: don't link to openpgm when building with cmake Problem: no relicense agreement by cdepillabout Dimitris Apostolou (2): Fix typos Add relicense statement Doron Somech (2): problem: outpipe can be null when sending disconnect msg problem: no way to know when connection is temporarly dropped E. G. Patrick Bos (3): add relicense statement for egpbos add zmq_ppoll Problem: when linking to libzmq in my project, I want zmq symbols to remain invisible to users of my library. There is no way to control this, since visibility is set automatically through ZMQ_EXPORT based on OS and compiler. FeRD (Frank Dana) (1): Problem: Docs reference outdated spec Francesco Montorsi (2): Fix typo in zmq_socket_monitor_versioned docs (#4458) Add ZMQ_TOPICS_COUNT socket option (#4459) Gudmundur Adalsteinsson (5): Problem: C style malloc and free Problem: Unused member variables _last_in Problem: strtok is not thread safe Problem: fast vector resize bug Problem: Invalid and inconsistent poller docs Guillaume DELACOURT (3): When setting thread priority, always set the value to zero when the policy is not compatible. Also, only call nice when the priority is set to a strictly positive value. Checks for pthread setname and setaffinity API are compilation checks, not execution checks. Always allow DNS when resolving TCP and UDP adresses. DNS resolution is done after interface resolution, so it can always be enabled to have a fallback mecanism on hostname resolution. Guilloux Stephan (Ubuntu) (10): Problem: Android build system needs some debug (./configure options) TAB -> SPACE Problem: Android CI build helper has no trace function. Problem: Android helpers have duplicate init code. Problem: android_download_ndk can be more 'autonomous'. Problem: android_clone_library() review Problem: android_build_library can be more robust & generic Enriched Android helpers Problem: Android dependencies are downloaded in an hard-coded /tmp/tmp-deps. Android helpers minor fixes. Han Gao (1): fix: fix build on qemu-user Hennadii Stepanov (1): Replace `egrep` with `grep -E` Ilya Kondrashkin (1): Problem: message can't be received due to signal Jack·Boos·Yu (1): [document] add vcpkg instruction (#4425) James Choi (2): Add support for QNX 7.1 build Add RELICENSE for James Choi James Wu (1): fix test comparison between -1 and unsigned winsock2.h socket return Jasper Bekkers (2): Fix minor casing issue in include files Add relicense Jeff Weston (2): Add NORM Transport configuration sockopts (#4541) Change NORM to set TTL using MULTICAST_HOPS sockopt (#4552) Jeffery Weston (1): fix assert error on late-joining subscriber after publisher has filled NORM buffer Jose Santiago (5): Fix Fedora33 s390x build. Add Relicense statement. MINGW Build Fix. Fix MINGW with pthread cv Fix Build BSD Keith Williams (3): extend tipc check to support Android under Termux remove c99 extention from c++11 code Add RELICENSE for Keith Williams Koby Boyango (1): Fix iOS build failure for x86_64 Krzysztof Rosiński (2): fix missing sodium link_directories add relicense note Leander Schulten (2): Don't assume that GnuTLS is on the search path license Lingqiao Zhao (1): Problem: exception thrown when debugging cl.exe x64 build with LLDB (#4129) Luca Boccassi (60): Problem: 4.3.4 is out, need new version Problem: wrong year in NEWS for 4.3.4 Problem: test_pubsub broken everywhere Add relicense grant by eponsko Problem: formatting errors Problem: vmci tests built in repo root Problem: VMCI build broken Problem: no CI coverage for VMCI transport rpm: run make check in %check area rpm: fix Group metadata rpm: fix license shortname Problem: compiler error with GCC 11 Problem: travis badge points to old travis-ci.org Problem: build with curve fails on GCC 11 Problem: build/test breakages on various distros are discovered only after merge Problem: test_inproc_connect occasionally fails on slow archs Problem: formatting is broken Problem: wepoll is out of date, known issues on Windows Problem: Appveyor build fails to clone libsodium Problem: OSX Travis builds using homebrew are timing out Problem: appveyor has broken libsodium cache Problem: formatting broken Problem: README.md does not mention Libera.chat Problem: test_pair_tcp_cap_net_admin requires privileges and might fail Problem: VMCI might not be supported by CI Problem: formatting errors Problem: some tests time out in CI under Valgrind Problem: test_socks and test_proxy hang under valgrind in Github Actions Problem: test_security_curve always fails when run by CMake under Github Actions Problem: some tests occasionally fail on OBS Problem: Travis is no longer free for FLOSS projects Problem: OBS CI config needs update following breaking change Problem: formatting broken Add relicense grant from hitstergtd Problem: build fails with gcc 12 Problem: manual release OBS trigger is flaky Problem: cannot use obs_scm which is faster than tar_scm Problem: build fails with PGM + CXX98 + clang++ Problem: windows-2016 build no longer runs in CI Problem: missing VMCI can also return EPROTONOSUPPORT and the tests fail Problem: formatting errors with clang-format-11 Problem: libsodium doesn't build anymore in VS2010 Problem: shipping binaries is a responsibility that requires time Problem: address sanitizer complains about uninitialised func pointer Problem: buffer overflow in new test case Problem: test_zmq_ppol_signals uses fixed TCP port Problem: test_zmq_ppoll_signals does not cleanup context Problem: VMCI tests are not skipped outside VMs Problem: test_filter_ipc is flacky Problem: no permission to relicense zmq_proxy_steerable Problem: no permission to relicense tweetnacl integration Problem: no permission to relicense ZMQ_RECONNECT_IVL_MAX Relicense from LGPL3 + exceptions to Mozilla Public License version 2.0 Remove RELICENSE/ directory Problem: trailing whitespace Problem: docs for ZMQ_RECONNECT_IVL_MAX are stubs spec: remove duplicated macros spec: do not attempt to install curve_keygen if curve is disabled obs: trigger build on merge Update NEWS for 4.3.5 Marco Casaroli (3): Use parenthesis for alloc_assert macro Do not break if malloc size is zero Add RELICENSE for Marco Casaroli Mark Jan van Kampen (1): Problem: newer cmake versions set CMAKE_C(XX)_FLAGS at a later stage not allowing a user to override the standard Martin Delille (2): Add conan badge Add relicense statement Michael Ngarimu (2): Problem: (Windows) /GL /LTCG breaks builds when the compiler/linker of static library differs from compiler/linker of executable Adding missing RELICENSE file Min RK (4): [appveyor] upload artifacts to GitHub releases Problem: calling randombytes_close with libsodium can crash Contexts in other threads (#4242) check rc in make_fdpair AF_UNIX support may fail on bind Nehal Patel (1): Problem: unused variables warnings Nevin Valsaraj (2): Problem: Incorrect formatting of documentation in zmq_udp.txt Add relicense for nevalsar Nicolas Benes (3): Add missing pkg_config_defines when built with CMake RELICENSE: add statement Fix pkg_config_defines in CMakeFile Niyas Sait (4): Get cycle count from ARM64 PMCCNTR_EL0 register add relicense for niyas sait Fix linting error reported by clang-format add win/arm64 to supported platform list Patrick Bos (1): fix unused parameter warning when POLL_BASED_ON_SELECT Patrick Trantham (1): Add license file for tranthamp Paul Thiele (2): Problem: if ZMQ_XPUB_VERBOSER is used with proxies unsubscribe messages are lost Problem: no relicense agreement by thielepaul Qqzk (2): Create qzkLicense Update decoder_allocators.cpp Rosen Penev (1): fix unused variables under windows Sascha van Vliet (2): Fix crash in context with wide characters in path Add missing relicense agreement Sergei Trofimovich (1): src/secure_allocator.hpp: define missing 'rebind' type Sergey Fedorov (2): tests: use NOT APPLE instead of NOT MATCHES Clang Add relicense statement Stephan Guilloux (4): Problem: Android APP fails to load ZMQ since NDK r25.x (#4437) Problem: Android APP fails to load ZMQ (ARM64 only) (#4442) Problem: Android build environment variables need clarifications. (#4443) Problem: Android NDK 22 download broken since support of NDK 23. (#4444) Stephan Guilloux (cos) (14): Problem: builds/android/build.sh fails with CURVE=libsodium Changed more git:gihub.com to https://github.com Problem: Android helpers no not validate dependent libraries. Problem: Android build script may fail silently Problem: Android CI build scripts need minor enhancements (traces & cleanup). Regression: Android build fails with libsodium. Problem: Android CI build tools does not support LIBSODIUM_ROOT Problem: Android helpers should export more compilation chain related variables Problem: Android helpers must provide build/clone functions. Problem: Android docker image is outdated. Problem: Android build documentation to be updated. Android minor fix in documentation. Android specific documentation update. Problem: Main documentation refers to Android NDK 24, when 25 is currently in use. Stephan Guilloux (home) (3): Added RELICENSE statement More enhancements and configuration variables to Android CI build scripts. Documentation update. Stephan Lachnit (4): CMake: fix not defining pollset in platform.hpp CMake: fix devpoll detection not working properly CMake: properly set ZMQ_HAVE_OPENPGM and ZMQ_HAVE_VMCI RELICENSE: add statement Stéphane Valès (1): Problem: relicensing forced to remove support for ZMQ_RECONNECT_IVL_MAX option Tarmo Tänav (2): Problem: XPUB socket allows manual subscription on terminated pipe Problem: ROUTER loses first frame metadata on message prefetch Tarn W. Burton (2): Update fd slot type to zmq_fd_t Add RELICENSE for yitzchak Teebonne (2): sodium, not Sodium Create Teebonne.md Tim Blechmann (3): relicense: add relicense statement for tim blechmann add missing override statements epoll: add missing override statement Tobias Schlüter (1): Remove Windows-specific defines from zmq.h. Wojciech Kula (1): Add relicense statement for Cziken Yunye Pu (2): Problem: WSS broken under contention Add relicense statement for Yunye Pu bjornstromberg (1): Problem: merged pr-4432 broke FindSodium on linux boscosiu (1): Problem: ZMQ_BUILD_DRAFT_API define is not propagated to dependent CMake projects fanquake (2): problem: typo in configure.ac output problem: kevent udata is now void* on NetBSD Current (10) mjvankampen (2): Problem: norm fails to compile under windows (#4123) Problem: polling_util.hpp missing sys/select.h include (#4283) myd7349 (2): Problem: In rare cases, afunix.h doesn't contain a definition for struct sockaddr_un (#4310) Problem: struct sockaddr_un redefinition patrick-volante (2): Problem: inside the event array, epoll return an event with invalid data pointer which create a segmentation fault issue-4312 Add relicnce file. sab24 (3): Fixes Firefox WebSocket upgrade request in WebSocket engine Fixes indentation Adds RELICENSE sabotagebeats (2): fix: building libzmq fails with error src/clock.cpp:131:16: error: unused variable 'nsecs_per_usec' fix: relicense Đorđije Manojlović (2): Problem: Handshake timeout error with ZMTP_2_0 Add RELICENSE statement 0MQ version 4.3.5 stable, released on 2023/10/09 ================================================ * Relicensing from LGPL-3.0+ (with custom exceptions) to MPL-2.0 is now complete. libzmq is now distributed under the Mozilla Public License 2.0. Relicensing grants have been collected from all relevant authors, and some functionality has been clean-room reimplemented where that was not possible. In layman terms, the new license provides the same rights and obligations as before. Source files are now tagged using the SPDX license identifier format. Details of the relicensing process can be seen at: zeromq/libzmq#2376 Relicensing grants have been archived at: https://github.com/rlenferink/libzmq-relicense A special thanks to everybody who helped with this long and difficult task, with the process, the reimplementations, the collections and everything else. (NEWS truncated at 15 lines)
Hello libzmq contributors,
I'm starting this issue because of the current libzmq license. At the moment, libzmq is licensed as LGPL with static linking exception and this makes it a complex "one of a kind" license.
Almost a year ago the ZeroMQ project team started to collect license grants to re-license libzmq to a clearer license, namely the MPLv2. Collecting these license grants stopped for a while, because Pieter Hintjens, the former BDFL (Benevolent Dictator for Life) behind ZeroMQ, got sick and passed away.
We want to continue Pieter's work with collecting these contributor license grants. We want to ask you to send us a license grant to permit the libzmq to relicense to a different license. At the moment, libzmq is licensed as LGPL 3 with a static linking exception (http://zeromq.org/area:licensing). This makes it hard to make use of libzmq in projects with some other Open Source licenses (e.g. projects using the Apache License). The existing LGPL 3 with exceptions is also a non-standard license that some corporate lawyers are unwilling to accept for use in their companies.
For relicensing the libzmq project, we need to collect a license grant from each individual contributor who wrote a major piece of code in the development process of libzmq.
We are requesting contributors to send in a license grant to relicense libzmq to one of the options listed below:
If a contribution was made during working hours for an employer then we will also need a license grant (or "quit claim") from the employer.
We would like to follow a certain template as license grant to ensure all the necessary information is included. There are three templates, one for each option. Please choose the template that best represents your wishes.
The templates can be found at: https://github.com/zeromq/libzmq/tree/master/RELICENSE/templates
To include the license grant, please:
See the existing files in:
https://github.com/zeromq/libzmq/tree/master/RELICENSE
or this specific example: https://github.com/zeromq/libzmq/blob/master/RELICENSE/rlenferink.md
for a guide for how to fill out the template.
If there are any questions, don't hesitate to ask them below.
Roy
The text was updated successfully, but these errors were encountered: