Skip to content

Commit 495eae8

Browse files
author
JkLondon
committed
ci devel branch
1 parent 0f8b00a commit 495eae8

38 files changed

+13510
-32329
lines changed

libmdbx/CMakeLists.txt

Lines changed: 120 additions & 381 deletions
Large diffs are not rendered by default.

libmdbx/COPYRIGHT

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
Copyright (c) 2015-2026 Леонид Юрьев aka Leonid Yuriev <leo@yuriev.ru>
2+
3+
Licensed under the Apache License, Version 2.0 (the "License");
4+
you may not use this file except in compliance with the License.
5+
You may obtain a copy of the License at
6+
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
9+
Unless required by applicable law or agreed to in writing, software
10+
distributed under the License is distributed on an "AS IS" BASIS,
11+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
See the License for the specific language governing permissions and
13+
limitations under the License.
14+
15+
-----------------------------------------------------------------------
16+
17+
СМЕНА ЛИЦЕНЗИИ (THE LICENSE CHANGE)
18+
19+
OpenLDAP Public License → Apache 2.0
20+
21+
Briefly:
22+
Historically, in 2015 an early MDBX source code was derived from the
23+
"LMDB engine" created by Howard Chu <hyc@symas.com> in 2011-2015,
24+
which based on btree.c written by Martin Hedenfalk <martin@bzero.se>.
25+
26+
By 2024, MDBX source code has actually been rewritten and has so
27+
little in common with the original LMDB that I thought it admissible
28+
to change the license. Below are more detailed explanations.
29+
30+
Кратко:
31+
32+
Исторически в 2015 году ранний исходный код MDBX был заимствован из
33+
«LMDB engine», созданной Howard Chu <hyc@symas.com> в 2011-2015,
34+
на основе btree.c, ранее созданного Martin Hedenfalk <martin@bzero.se>.
35+
36+
К 2024 году исходный код MDBX фактически переписан и имеет настолько
37+
мало общего с первоначальным заимствованием из LMDB, что я счел
38+
уместным сменить лицензию. Ниже более подробные пояснения.
39+
40+
---
41+
42+
Первоисточник текста формулирован на Русском языке, который является
43+
родным для автора. Предполагается что все заинтересованные могут легко
44+
воспользоваться машинным переводом, который при всех недостатках сможет
45+
донести суть, намерения и местами даже передать тональность.
46+
47+
The original source of this text is in Russian, which is the author's
48+
native language. It is assumed that all concerned can easily use machine
49+
translation, which, with all the disadvantages, will be able to convey
50+
the essence, intentions and, in some places, even convey the tonality of
51+
a wording.
52+
53+
1. Причины
54+
55+
1.1. Лицензия Apache-2.0 является одной из самых популярных, так как
56+
содержит ряд уточнений, проясняющих и упрощающих использование исходного
57+
кода в производных работах и больших проектах. Эти особенности лицензии
58+
Apache-2.0 я нахожу достаточно ценными и удобными. Соответственно,
59+
переход на лицензию Apache-2.0 полезным в целом.
60+
61+
1.2. Проект OpenLDAP имеет определенную известность, в том числе, к
62+
сожалению, среди специалистов славится кране плохим качеством кода и
63+
сбоями при отходе от простых/базовых сценариев использования. Поэтому
64+
использование лицензии OpenLDAP, в глазах части аудитории, бросает тень
65+
на качества кода libmdbx, несмотря на то, что исходный код библиотеки
66+
переписан, в том числе, с целью повышения качества, надежности,
67+
стабильности и пригодности к тестированию.
68+
69+
Отмечу, что здесь не место для обсуждения объективности подобных мнений
70+
и причин, равно как и не место для оценки компетентности специалистов
71+
высказывающих такие суждения. Однако, здесь необходимо озвучить сам факт
72+
наличия такой негативной коннотации качества кода при упоминании
73+
OpenLDAP, совершенно без намерения как-либо задеть или обидеть
74+
контрибьюторов OpenLDAP.
75+
76+
1.3. С точки зрения исходного кода, к настоящему времени libmdbx стала
77+
совсем другим продуктом, о котором сейчас правильнее сказать что
78+
разработка вдохновлена LMDB, нежели основывается на заимствовании кода.
79+
Смена лицензии на переписанный код подчеркивает, что это действительно
80+
новый исходный код.
81+
82+
2. Легитимность
83+
84+
2.1. Исходная лицензия OpenLDAP 2.8 и актуальная лицензия Apache 2.0
85+
совпадают по базовым условиям. При этом лицензия Apache 2.0 уточняет,
86+
определяет и проясняет многие аспекты. Поэтому смену лицензии я склонен
87+
трактовать как уточнение, но НЕ как принципиальное изменение, которое
88+
могло-бы нарушить чьи-либо права.
89+
90+
2.2. С процедурной точки зрения, у меня есть право сменить лицензию на
91+
новый, написанный мной, исходный код. При этом объективно существует как
92+
техническая, так и юридическая проблемы отделения «нового кода» от
93+
«заимствованного», а также выделение/классификация кода, который
94+
является общественным достоянием и/или общеупотребительным воплощением
95+
«математических моделей и других публичных знаний».
96+
97+
Основываясь на собственной субъективной оценке кодовой базы, включая
98+
соотношения «нового», «заимствованного» и «общеупотребительного»
99+
исходного кода, я считаю что смена лицензии допустима. Одновременно с
100+
этим, я понимаю и признаю, что можно найти повод, чтобы трактовать
101+
ситуацию как «стакан наполовину полон/пуст». Поэтому декларирую
102+
готовность принимать претензии и устранять их путем полного
103+
переписывания оставшегося исходного кода, который попадает под критерии
104+
«заимствованного» и кто-то из контрибьюторов которого будет против
105+
изменения лицензии.
106+
107+
2.3. Вне зависимости от истории происхождения каждой строки исходного
108+
кода и её буквального авторства, прошу не считать производимую смену
109+
лицензии, и связанных с этим технических действий, как попытку плагиата,
110+
присвоения чужого труда, присвоения авторства или принижения вклада
111+
других авторов/контрибьторов. Безусловно проект MDBX/libmdbx не появился
112+
бы без LMDB и всех участников проекта LMDB, в особенности Говарда Чу
113+
(Howard Chu), Холлварда Фурусет (Hallvard Furuseth) и Мартина Хеденфок
114+
(Martin Hedenfalk). Как-бы исходный код не переписывался он всё равно
115+
будет основываться на базовых идеях и включать основные концепции LMDB.
116+
117+
3. Последствия и актуальные требования
118+
119+
Всё очень просто. Потребуется обеспечить требования новой лицензии в
120+
соответствии с 4-м пунктом лицензции Apache 2.0.
121+
122+
В частности, при использовании/распространении libmdbx потребуется
123+
обеспечить наличие файлов с текстом лицензии и файла NOTICE, а также
124+
обеспечить пользователям возможность ознакомиться с их содержимым в
125+
работах/продуктах использующих libmdbx.
126+
127+
-----------------------------------------------------------------------
128+
129+
Далее в справочных целях приведены уведомления об авторских правах из
130+
первоначально заимствованного кода.
131+
132+
---
133+
134+
Original source code was derived from LMDB in 2015,
135+
and later evolutionarily rewritten in 2015-2024:
136+
Copyright (c) 2011-2015 Howard Chu, Symas Corp. All rights reserved.
137+
138+
Redistribution and use in source and binary forms, with or without
139+
modification, are permitted only as authorized by the OpenLDAP
140+
Public License.
141+
142+
A copy of this license is available in the file LICENSE in the
143+
top-level directory of the distribution or, alternatively, at
144+
<http://www.OpenLDAP.org/license.html>.
145+
146+
LMDB itself devived code from btree.c written by Martin Hedenfalk:
147+
Copyright (c) 2009, 2010 Martin Hedenfalk <martin@bzero.se>
148+
149+
Permission to use, copy, modify, and distribute this software for any
150+
purpose with or without fee is hereby granted, provided that the above
151+
copyright notice and this permission notice appear in all copies.
152+
153+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
154+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
155+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
156+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
157+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
158+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
159+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

0 commit comments

Comments
 (0)