2024-05-20 03:07:58 +08:00
|
|
|
|
Copyright (c) 2015-2024 Леонид Юрьев aka Leonid Yuriev <leo@yuriev.ru>
|
|
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
|
limitations under the License.
|
|
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
СМЕНА ЛИЦЕНЗИИ (THE LICENSE CHANGE)
|
|
|
|
|
|
|
|
|
|
OpenLDAP Public License → Apache 2.0
|
|
|
|
|
|
|
|
|
|
Briefly:
|
|
|
|
|
Historically, in 2015 an early MDBX source code was derived from the
|
|
|
|
|
"LMDB engine" created by Howard Chu <hyc@symas.com> in 2011-2015,
|
|
|
|
|
which based on btree.c written by Martin Hedenfalk <martin@bzero.se>.
|
|
|
|
|
|
|
|
|
|
By 2024, MDBX source code has actually been rewritten and has so
|
|
|
|
|
little in common with the original LMDB that I thought it admissible
|
|
|
|
|
to change the license. Below are more detailed explanations.
|
|
|
|
|
|
|
|
|
|
Кратко:
|
2024-06-21 17:18:40 +08:00
|
|
|
|
|
|
|
|
|
Исторически в 2015 году ранний исходный код MDBX был заимствован из
|
|
|
|
|
«LMDB engine», созданной Howard Chu <hyc@symas.com> в 2011-2015,
|
|
|
|
|
на основе btree.c, ранее созданного Martin Hedenfalk <martin@bzero.se>.
|
2024-05-20 03:07:58 +08:00
|
|
|
|
|
|
|
|
|
К 2024 году исходный код MDBX фактически переписан и имеет настолько
|
|
|
|
|
мало общего с первоначальным заимствованием из LMDB, что я счел
|
|
|
|
|
уместным сменить лицензию. Ниже более подробные пояснения.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
Первоисточник текста формулирован на Русском языке, который является
|
|
|
|
|
родным для автора. Предполагается что все заинтересованные могут легко
|
|
|
|
|
воспользоваться машинным переводом, который при всех недостатках сможет
|
|
|
|
|
донести суть, намерения и местами даже передать тональность.
|
|
|
|
|
|
|
|
|
|
The original source of this text is in Russian, which is the author's
|
|
|
|
|
native language. It is assumed that all concerned can easily use machine
|
|
|
|
|
translation, which, with all the disadvantages, will be able to convey
|
|
|
|
|
the essence, intentions and, in some places, even convey the tonality of
|
|
|
|
|
a wording.
|
|
|
|
|
|
|
|
|
|
1. Причины
|
|
|
|
|
|
|
|
|
|
1.1. Лицензия Apache-2.0 является одной из самых популярных, так как
|
|
|
|
|
содержит ряд уточнений, проясняющих и упрощающих использование исходного
|
|
|
|
|
кода в производных работах и больших проектах. Эти особенности лицензии
|
|
|
|
|
Apache-2.0 я нахожу достаточно ценными и удобными. Соответственно,
|
|
|
|
|
переход на лицензию Apache-2.0 полезным в целом.
|
|
|
|
|
|
|
|
|
|
1.2. Проект OpenLDAP имеет определенную известность, в том числе, к
|
|
|
|
|
сожалению, среди специалистов славится кране плохим качеством кода и
|
|
|
|
|
сбоями при отходе от простых/базовых сценариев использования. Поэтому
|
|
|
|
|
использование лицензии OpenLDAP, в глазах части аудитории, бросает тень
|
|
|
|
|
на качества кода libmdbx, несмотря на то, что исходный код библиотеки
|
|
|
|
|
переписан, в том числе, с целью повышения качества, надежности,
|
|
|
|
|
стабильности и пригодности к тестированию.
|
|
|
|
|
|
|
|
|
|
Отмечу, что здесь не место для обсуждения объективности подобных мнений
|
|
|
|
|
и причин, равно как и не место для оценки компетентности специалистов
|
|
|
|
|
высказывающих такие суждения. Однако, здесь необходимо озвучить сам факт
|
|
|
|
|
наличия такой негативной коннотации качества кода при упоминании
|
|
|
|
|
OpenLDAP, совершенно без намерения как-либо задеть или обидеть
|
|
|
|
|
контрибьюторов OpenLDAP.
|
|
|
|
|
|
|
|
|
|
1.3. С точки зрения исходного кода, к настоящему времени libmdbx стала
|
|
|
|
|
совсем другим продуктом, о котором сейчас правильнее сказать что
|
|
|
|
|
разработка вдохновлена LMDB, нежели основывается на заимствовании кода.
|
|
|
|
|
Смена лицензии на переписанный код подчеркивает, что это действительно
|
|
|
|
|
новый исходный код.
|
|
|
|
|
|
|
|
|
|
2. Легитимность
|
|
|
|
|
|
|
|
|
|
2.1. Исходная лицензия OpenLDAP 2.8 и актуальная лицензия Apache 2.0
|
|
|
|
|
совпадают по базовым условиям. При этом лицензия Apache 2.0 уточняет,
|
|
|
|
|
определяет и проясняет многие аспекты. Поэтому смену лицензии я склонен
|
2024-06-21 17:18:40 +08:00
|
|
|
|
трактовать как уточнение, но НЕ как принципиальное изменение, которое
|
2024-05-20 03:07:58 +08:00
|
|
|
|
могло-бы нарушить чьи-либо права.
|
|
|
|
|
|
|
|
|
|
2.2. С процедурной точки зрения, у меня есть право сменить лицензию на
|
|
|
|
|
новый, написанный мной, исходный код. При этом объективно существует как
|
|
|
|
|
техническая, так и юридическая проблемы отделения «нового кода» от
|
|
|
|
|
«заимствованного», а также выделение/классификация кода, который
|
|
|
|
|
является общественным достоянием и/или общеупотребительным воплощением
|
|
|
|
|
«математических моделей и других публичных знаний».
|
|
|
|
|
|
|
|
|
|
Основываясь на собственной субъективной оценке кодовой базы, включая
|
|
|
|
|
соотношения «нового», «заимствованного» и «общеупотребительного»
|
|
|
|
|
исходного кода, я считаю что смена лицензии допустима. Одновременно с
|
|
|
|
|
этим, я понимаю и признаю, что можно найти повод, чтобы трактовать
|
|
|
|
|
ситуацию как «стакан наполовину полон/пуст». Поэтому декларирую
|
|
|
|
|
готовность принимать претензии и устранять их путем полного
|
|
|
|
|
переписывания оставшегося исходного кода, который попадает под критерии
|
|
|
|
|
«заимствованного» и кто-то из контрибьюторов которого будет против
|
|
|
|
|
изменения лицензии.
|
|
|
|
|
|
|
|
|
|
2.3. Вне зависимости от истории происхождения каждой строки исходного
|
|
|
|
|
кода и её буквального авторства, прошу не считать производимую смену
|
|
|
|
|
лицензии, и связанных с этим технических действий, как попытку плагиата,
|
|
|
|
|
присвоения чужого труда, присвоения авторства или принижения вклада
|
|
|
|
|
других авторов/контрибьторов. Безусловно проект MDBX/libmdbx не появился
|
|
|
|
|
бы без LMDB и всех участников проекта LMDB, в особенности Говарда Чу
|
|
|
|
|
(Howard Chu), Холлварда Фурусет (Hallvard Furuseth) и Мартина Хеденфок
|
|
|
|
|
(Martin Hedenfalk). Как-бы исходный код не переписывался он всё равно
|
|
|
|
|
будет основываться на базовых идеях и включать основные концепции LMDB.
|
|
|
|
|
|
|
|
|
|
3. Последствия и актуальные требования
|
|
|
|
|
|
|
|
|
|
Всё очень просто. Потребуется обеспечить требования новой лицензии в
|
|
|
|
|
соответствии с 4-м пунктом лицензции Apache 2.0.
|
|
|
|
|
|
|
|
|
|
В частности, при использовании/распространении libmdbx потребуется
|
|
|
|
|
обеспечить наличие файлов с текстом лицензии и файла NOTICE, а также
|
|
|
|
|
обеспечить пользователям возможность ознакомиться с их содержимым в
|
|
|
|
|
работах/продуктах использующих libmdbx.
|
|
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Далее в справочных целях приведены уведомления об авторских правах из
|
|
|
|
|
первоначально заимствованного кода.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
Original source code was derived from LMDB in 2015,
|
|
|
|
|
and later evolutionarily rewritten in 2015-2024:
|
|
|
|
|
Copyright (c) 2011-2015 Howard Chu, Symas Corp. All rights reserved.
|
2015-01-07 21:49:50 +08:00
|
|
|
|
|
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
|
|
|
modification, are permitted only as authorized by the OpenLDAP
|
|
|
|
|
Public License.
|
|
|
|
|
|
|
|
|
|
A copy of this license is available in the file LICENSE in the
|
|
|
|
|
top-level directory of the distribution or, alternatively, at
|
|
|
|
|
<http://www.OpenLDAP.org/license.html>.
|
|
|
|
|
|
2024-05-20 03:07:58 +08:00
|
|
|
|
LMDB itself devived code from btree.c written by Martin Hedenfalk:
|
|
|
|
|
Copyright (c) 2009, 2010 Martin Hedenfalk <martin@bzero.se>
|
2015-01-07 21:49:50 +08:00
|
|
|
|
|
2024-05-20 03:07:58 +08:00
|
|
|
|
Permission to use, copy, modify, and distribute this software for any
|
|
|
|
|
purpose with or without fee is hereby granted, provided that the above
|
|
|
|
|
copyright notice and this permission notice appear in all copies.
|
2015-01-07 21:49:50 +08:00
|
|
|
|
|
2024-05-20 03:07:58 +08:00
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
|
|
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
|
|
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
|
|
|
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
|
|
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
|
|
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
|
|
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|