powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Выпустили альфу новой СУБД SoQoL
25 сообщений из 78, страница 3 из 4
Выпустили альфу новой СУБД SoQoL
    #40142719
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 13:30
[игнорируется]
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Первый запрос отработал мгновенно. Второй - полностью висит и не выполняется (пока работает ltrace во второй сессии). После киляния ltrace запрос с JIT отработал и написал Query OK, 1 row processed <237229 msec>.

Давайте внедрим это где-нибудь в проде. [:smile]
А вот например в Вашей компании РЕЛЭКС.
Ценное предложение, давай включим ltrace еще для чего нибудь и на чем нибудь поставим это в проде.
Не понятно, что вы ищите, какую цель вы преследуете в вашем исследовании?
Может быть я вам сразу дам ответ :) на ваш вопрос, который не задан еще?
Мы как-то исследовали Оракл на проде, правда strace, смотрели вызовы dbwriter'a, и это никак не поломало базу.
А вот JIT в Соколе остановился полностью.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142720
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 13:38
[игнорируется]
Писал в одном из ответов, что сейчас внутри ядра используется JIT для внутренних запросов по обслуживанию словаря/кэша.
Нет сейчас публичной опции по отключению этого. Сделать можно, только не понятно для чего.
Если вам это важно для вашего проекта, приходите к нашим продажникам обсудим зачем и почему.
Разработка всего требует времени и денег, нужны аргументы под хотелки.
Если "сейчас внутри ядра используется JIT для внутренних запросов по обслуживанию словаря/кэша.", в таком случае

не получается, что "- LLVM - это опция, она не формирует СУБД и не является обязательным компонентом в архитектуре",

а получается что база не работает без LLVM, она формирует СУБД и является обязательным компонентом в архитектуре.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142722
sqvayer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm  19.02.2026, 13:57
[игнорируется]
akorotchenko  19.02.2026, 13:38
[игнорируется]
Писал в одном из ответов, что сейчас внутри ядра используется JIT для внутренних запросов по обслуживанию словаря/кэша.
Нет сейчас публичной опции по отключению этого. Сделать можно, только не понятно для чего.
Если вам это важно для вашего проекта, приходите к нашим продажникам обсудим зачем и почему.
Разработка всего требует времени и денег, нужны аргументы под хотелки.
Если "сейчас внутри ядра используется JIT для внутренних запросов по обслуживанию словаря/кэша.", в таком случае

не получается, что "- LLVM - это опция, она не формирует СУБД и не является обязательным компонентом в архитектуре",

а получается что база не работает без LLVM, она формирует СУБД и является обязательным компонентом в архитектуре.
Да, было интересно увидеть (и потестировать) дистрибутив без "LLVM опции". Это, кстати, было бы доказательством, что по Соколу в реестр внесли достоверные сведения об отсутствии заимствованных кодов. В общем, если есть версия без заимствований - предъявите народу, убедите. А то выходит "предполагай худшее и не ошибешься"... Опять же представителям РЕЛЭКС будет легче общаться с госзаказчиками, если отсутствие заимствований "даже не просто факт, а так есть на самом деле" :)
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142723
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот что мне пишет ИИ по поводу лицензий:

При статической линковке «Сокол» и LLVM превращаются в единый бинарный файл. В этом случае исключение («LLVM Exception») не освобождает от базовых требований Apache 2.0, так как вы распространяете саму библиотеку внутри своего кода.

Компания обязана предоставить информацию в следующем объеме:
Текст лицензии Apache 2.0: Он должен быть включен в состав дистрибутива (например, в файле THIRD-PARTY-NOTICES или LICENSE).
Copyright Notice: Сохранение строки вида: Copyright (c) 2003-2019 University of Illinois at Urbana-Champaign. All rights reserved. и упоминание LLVM Release License.
Атрибуция: Указание, что продукт содержит программное обеспечение, разработанное проектом LLVM (LLVM Project).

Почему это важно для коммерческой СУБД:

Статическая линковка делает компоненты LLVM неотъемлемой частью «Сокола». С точки зрения лицензионного аудита (особенно при сертификации во ФСТЭК или включении в реестр отечественного ПО), отсутствие упоминания стороннего кода может быть расценено как нарушение условий лицензирования open-source компонента.

Требуемый объем документации:
Обычно это одна страница в PDF-документе «Формуляр» или «Руководство администратора» со списком заимствованных компонентов и полным текстом их лицензий.

Мой вопрос ИИ: в каких случаях идет освобождение от LLVM Exception ?
Ответ ИИ:


Исключение LLVM Exception (официально оно называется LLVM Exceptions to the Apache 2.0 License) работает не как «обязанность», а как льгота. Оно не «освобождает» вас от чего-то плохого, а наоборот — освобождает от строгих требований основной лицензии Apache 2.0.
Вы перестаете попадать под действие этого исключения (и на вас накладываются полные требования Apache 2.0) в следующих случаях:
1. Распространение исходного кода (Source Code)
Исключение создано специально для бинарных файлов (скомпилированного кода). Если вы берете исходники LLVM, модифицируете их и распространяете именно как исходный код, вы обязаны соблюдать все правила Apache 2.0: сохранять все уведомления, помечать измененные файлы и прилагать текст лицензии. Исключение здесь не работает.
2. Использование LLVM как библиотеки (Ваш случай с СУБД)
Это самый тонкий момент. Исключение было написано, чтобы защитить пользователей компилятора (чтобы обычный программист, написав "Hello World" на C++, не был обязан писать «Copyright Apple/LLVM» в своей программе).
Когда льгота работает: Когда код LLVM попал в ваш бинарник автоматически (как вспомогательный рантайм-код, например libgcc или части libcxx).
Когда льгота НЕ работает: Когда вы осознанно берете LLVM как инструментарий (framework), линкуете его библиотеки (статически или динамически) для реализации функций своего продукта (как JIT в СУБД Сокол). В этом случае вы распространяете производный продукт, и вы обязаны предоставить атрибуцию (упоминание лицензии).
3. Нарушение условий Apache 2.0
Если вы удаляете файлы LICENSE или NOTICE из дистрибутива или пытаетесь выдать код LLVM за свой собственный, вы теряете право на использование лицензии в целом, включая и её «льготную» часть (Exceptions).

Короткий итог:
Разработчики СУБД Сокол не освобождаются от упоминания LLVM, потому что:
Они используют LLVM как основной функциональный модуль (движок JIT), а не просто как «невидимый» побочный продукт компиляции.
Статическая линковка делает их продукт Derivative Work (производным произведением).
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142725
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Мы как-то исследовали Оракл на проде, правда strace, смотрели вызовы dbwriter'a, и это никак не поломало базу.
А вот JIT в Соколе остановился полностью.
Исследуйте и Сокола с strace, тоже не ломает, сами это делаем регулярно.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142726
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

Вот фрагмент С-кода некоторого внутреннего запроса, инициализации константной строки
Код: C
1.
2.
3.
4.
5.
#define JIT_CODEGEN "/*+ JIT_CODEGEN */"
...
    [SELECT_FROM_SEQUENCE_BY_ID] =
        {"select " JIT_CODEGEN " ID, TYPE, CUR_VAL, START_VAL, INC_VAL, MAX_VAL, MIN_VAL, CACHE_CNT, FLAGS from "
         "SYS._SEQUENCE where ID = ?;"},
Сейчас это опция времени трансляции.
Если поменять макрос на
Код: C
1.
#define JIT_CODEGEN
То получится без участия JIT все внутренние запросы.

Вероятно, можно написать код формирования текста внутренних SQL запросов, чтоб это было опцией времени исполнения.

Так понятнее? Или еще что-то нужно объяснять?
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142727
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqvayer [игнорируется] 

Не вопрос, выходите на прямой контакт, будем беседовать конкретнее (можно собрать версию с отключенным JIT в ядре).
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142728
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

Про упоминание LLVM разберемся, наведем порядок в документации.
Сертификации пока не было, безусловно, все будет зачищено к тому времени.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142729
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 15:51
[игнорируется]
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Мы как-то исследовали Оракл на проде, правда strace, смотрели вызовы dbwriter'a, и это никак не поломало базу.
А вот JIT в Соколе остановился полностью.
Исследуйте и Сокола с strace, тоже не ломает, сами это делаем регулярно.
ltrace не вредит базе Оракл, а у Сокол перестают работать JIT-запросы.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142730
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

Возможно, архитектурно это не проблема.
Будет время посмотрим на сценарий тестирования, разберемся
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142731
sqvayer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko [игнорируется] 

Да, лично мне в целом все равно есть у вас заимствованные коды или нет. Особенно, если ваш продукт действительно хороший (люди, кстати, говорят, что да..). Но, будь я на месте ваших конкурентов, то немедленно бы направил запрос "в реестр" от какой-нибудь уважаемой организации. Мол, бродят такие люди, утверждают что нет заимствованных кодов несмотря на то, что имеют место такие-сякие факты (как приводились выше), "не могу понять", прошу разъяснить и т.д. Т.е. я хочу сказать, что собирать версию с отключенным JIT в ядре, может быть, все равно придется.. Лучше уж заранее это сделать, мне кажется (может быть я и ошибаюсь...). И показать здесь народу, для начала.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142732
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
ltrace не вредит базе Оракл, а у Сокол перестают работать JIT-запросы.
Повторил описываемый вами запуск ltrace.
Что он фильтрует не совсем понятно, вижу все вызовы из динамических библиотек (memcpy, memcmp, ....), возможно, это те вызовы которые из LLVM функций вызываются. Не знаю почему это интересно должно быть и почему это не должно тормозить.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142735
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko [игнорируется] 

Я сделал ролик с проблемой, где видно что под ltrace запрос без JIT выполняется, а запрос с JIT висит.
(Он отработал только после киляния ltrace).
Считаете здесь все нормально, и он "просто тормозит"?
2026-02-19 20-38-55.rar
...
Изменено: 19.02.2026, 20:47 - dailyadm
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142741
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 16:02
[игнорируется]
dailyadm [игнорируется] 

Про упоминание LLVM разберемся, наведем порядок в документации.
С этим надо было разбираться в 2022 году при подаче заявления в Реестр ПО Минцифры. По факту Вы присвоили себе масштабные американские программные разработки и много лет выдаете их как свои собственные.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142742
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

безусловно, что здесь ненормального
FYI:
LLVM работает с мелкими объектами - инструкции. При перехвате всех его функций все тормозит безбожно. Собственно это главная причина почему нативная кодогенерация везде такая тормозная, тот же MIR заявлял что ускорит процесс в 100 раз, но не ускорил меньше чем на порядок.

Да и сам ltrace не идеальный инструмент. Сам может сдохнуть и прогу убить (Trace/breakpoint trap (core dumped)).
Код: BASH
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
$ ltrace -x '*llvm*' -p $(pidof vsql_server.debug)  >out 2>&1
Aborted (core dumped)
$ du -h out
192M    out
$ wc -l out
1818740 out
$ tail out
_ZNK4llvm19SmallPtrSetImplBase13FindBucketForEPKv(0x7967d3a5f0e0, 0x1110be90, 2447, 8192) = 0x125066f0
<... _ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv resumed> ) = 0x125066f0
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE.part.1231(0x7967d3a5ef70, 0x1110be90, 1, 0x12504940) = 0
<... _ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE resumed> ) = 0
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE(0x7967d3a5ef70, 0x119daa10, 1, 0x10f37490 <unfinished ...>
_ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv(0x7967d3a5f0e0, 0x119daa10, 1, 0x10f37490 <unfinished ...>
_ZNK4llvm19SmallPtrSetImplBase13FindBucketForEPKv(0x7967d3a5f0e0, 0x119daa10, 2446, 8192) = 0x12506ce0
<... _ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv resumed> ) = 0x12506ce0
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE.part.1231(0x7967d3a5ef70, 0x119daa10, 1, 0x12504940 <unfinished ...>
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE(0x7967d3a5ef70, 0x11c6a298, 1, 0x119daa00callstack_push_symfunc: Error: call nesting too deep!
Если уж и хочется что-то накопать с ltrace/strace, то можно заметить что
- malloc/free/mmap/munmap практически не вызывается после инициаилизации (если не использовать JIT). Сокол имеет собственный менеджер памяти.
- работа с файлами асинхронная и O_DIRECT (epol_wait, io_submit) - наводит на мысль что полагаются только на собственный кэш и собственные алгоритмы опережающего чтения. Работа с сокетами неблокирующая
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142743
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

Громко говорите. Об опции JIT (и о том что она сделана на LLVM) везде говорили открыто и в телеграм-канале и на докладах.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142744
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  20.02.2026, 09:50
[игнорируется]
dailyadm [игнорируется] 

безусловно, что здесь ненормального
FYI:
LLVM работает с мелкими объектами - инструкции. При перехвате всех его функций все тормозит безбожно. Собственно это главная причина почему нативная кодогенерация везде такая тормозная, тот же MIR заявлял что ускорит процесс в 100 раз, но не ускорил меньше чем на порядок.

Да и сам ltrace не идеальный инструмент. Сам может сдохнуть и прогу убить (Trace/breakpoint trap (core dumped)).
Код: BASH
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
$ ltrace -x '*llvm*' -p $(pidof vsql_server.debug)  >out 2>&1
Aborted (core dumped)
$ du -h out
192M    out
$ wc -l out
1818740 out
$ tail out
_ZNK4llvm19SmallPtrSetImplBase13FindBucketForEPKv(0x7967d3a5f0e0, 0x1110be90, 2447, 8192) = 0x125066f0
<... _ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv resumed> ) = 0x125066f0
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE.part.1231(0x7967d3a5ef70, 0x1110be90, 1, 0x12504940) = 0
<... _ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE resumed> ) = 0
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE(0x7967d3a5ef70, 0x119daa10, 1, 0x10f37490 <unfinished ...>
_ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv(0x7967d3a5f0e0, 0x119daa10, 1, 0x10f37490 <unfinished ...>
_ZNK4llvm19SmallPtrSetImplBase13FindBucketForEPKv(0x7967d3a5f0e0, 0x119daa10, 2446, 8192) = 0x12506ce0
<... _ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv resumed> ) = 0x12506ce0
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE.part.1231(0x7967d3a5ef70, 0x119daa10, 1, 0x12504940 <unfinished ...>
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE(0x7967d3a5ef70, 0x11c6a298, 1, 0x119daa00callstack_push_symfunc: Error: call nesting too deep!
Если уж и хочется что-то накопать с ltrace/strace, то можно заметить что
- malloc/free/mmap/munmap практически не вызывается после инициаилизации (если не использовать JIT). Сокол имеет собственный менеджер памяти.
- работа с файлами асинхронная и O_DIRECT (epol_wait, io_submit) - наводит на мысль что полагаются только на собственный кэш и собственные алгоритмы опережающего чтения. Работа с сокетами неблокирующая
Запрос, который не укладывается в полагающееся ему время - это НЕРАБОТАЮЩИЙ запрос.
И никто не будет ждать пока он отработает за несколько часок/суток/дней/недель/месяцев/лет. А тем более ПРОМЫШЛЕННАЯ система.
Я всего лишь показал, что любой JIT-запрос, даже такой элементарный как SELECT 1+1; легко остановить в СУБД, т.е. превратить в абсолютно НЕРАБОТАЮЩИЙ. Причем это можно сделать абсолютно штатными линуксовыми утилитами.
К чему Вы прикладываете эти все выкладки?
Это объяснения ДБА будет показывать своему руководству при таких сбоях?
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142745
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  20.02.2026, 10:03
[игнорируется]
dailyadm [игнорируется] 

Громко говорите. Об опции JIT (и о том что она сделана на LLVM) везде говорили открыто и в телеграм-канале и на докладах.
Эксперты Реестра ПО Минцифры всегда задают вопрос о компонентах (и их правообладателях), присутствующих в программном обеспечении.
Здесь было заявление о наличии LLVM и ее американских правообладателях?
Если это не было сделано - это предоставление недостоверной информации.
Если это было сделано - тогда фраза "СУБД не основана на продуктах с отрытым исходным кодом и не использует стороннее программное обеспечение." не соответствует действительности, и должна быть исправлена. А так же должны быть добавлены лицензии LLVM в поставку СУБД Сокол и в ее документацию.
Только и всего.
Вы согласны с этим?
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142748
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Я всего лишь показал, что любой JIT-запрос, даже такой элементарный как SELECT 1+1; легко остановить в СУБД, т.е. превратить в абсолютно НЕРАБОТАЮЩИЙ. Причем это можно сделать абсолютно штатными линуксовыми утилитами.
К чему Вы прикладываете эти все выкладки?
Какая-то у вас навязчивая идея. Не вижу смысла продолжать обсуждать здесь что-либо.
Сделать что-либо нерабочим с помощью отладочных утилит это даже не искусство.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142749
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

Извините, вы прокурор, судья или эксперт Реестра ПО Минцифры, предъявляете нам что конкретно в правовом поле?
Если так, то добро пожаловать, юридическое лицо ваш ждет.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142750
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  20.02.2026, 12:34
[игнорируется]
dailyadm [игнорируется] 

Извините, вы прокурор, судья или эксперт Реестра ПО Минцифры, предъявляете нам что конкретно в правовом поле?
Если так, то добро пожаловать, юридическое лицо ваш ждет.
Это тема с обсуждением не КТО Я, а КТО ВЫ и ЧТО из себя представляет СУБД СОКОЛ.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142751
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 10:42
[игнорируется]
Клиентские библиотеки могут иметь свои зависимости, например, unixodbc, icu
Вопрос к ИИ:
Какая лицензия на библиотеку unixodbc? Какие требования лицензии к коммерческим закрытым проектам, которые распространяют бинарники?

Ответ ИИ:
Библиотека unixODBC использует модель двойного лицензирования, разделяя компоненты проекта на разные типы прав:
- Библиотеки (драйвер-менеджер и основные библиотеки): Распространяются под лицензией GNU LGPL (Lesser General Public License) версии 2.1 или выше.
- Программы и утилиты (например, isql, odbcinst): Распространяются под лицензией GNU GPL версии 2.0 или выше.

Требования к коммерческим закрытым проектам (LGPL)

Для закрытых коммерческих проектов наиболее важна лицензия LGPL, которая позволяет использовать библиотеку без раскрытия исходного кода вашего основного приложения при соблюдении следующих условий:

Метод линковки:

Динамическая линковка (рекомендуется):

Вы должны подключать unixODBC как общую библиотеку (например, .so файл). Это позволяет конечному пользователю заменить версию unixODBC на свою собственную без пересборки вашего приложения.

Статическая линковка:

Если вы включаете код библиотеки непосредственно в исполняемый файл, вы обязаны предоставить пользователю возможность перелинковки. Обычно это требует предоставления объектных файлов (.o) вашего приложения или использования других механизмов, позволяющих заменить код библиотеки.

Сохранение уведомлений:

В документации или сопроводительных материалах необходимо указать, что используется unixODBC, и включить текст лицензии LGPL и уведомления об авторских правах.

Изменения в самой библиотеке:

Если вы модифицировали исходный код unixODBC, эти изменения обязательно должны быть опубликованы под лицензией LGPL. Код вашего проприетарного приложения при этом остается закрытым.

Предоставление исходников библиотеки:

Вы должны предоставить пользователям способ получить исходный код той версии unixODBC, которую вы используете (например, ссылкой на официальный репозиторий или включением архива в поставку).

Вопрос к ИИ:
Какая лицензия на библиотеку icu? Какие требования лицензии к коммерческим закрытым проектам, которые распространяют бинарники?

Ответ ИИ:
libicu (ICU) использует крайне либеральную лицензию ICU License (начиная с версии 58 — Unicode License), которая по своей сути идентична лицензии MIT.

Требования к коммерческим закрытым проектам:

Лицензия ICU — одна из самых «дружелюбных» для бизнеса. Если вы распространяете бинарные файлы (исполняемые файлы вашего приложения вместе с ICU), требования следующие:

Сохранение уведомлений:


Вы обязаны включить текст лицензии и уведомление об авторских правах (copyright notice) в сопроводительную документацию или экран «О программе».

Отсутствие ответственности:

Вы не можете предъявлять претензии авторам ICU, если библиотека что-то сломает. ПО поставляется «как есть».
Никакого копилефта: В отличие от LGPL (как у unixODBC), лицензия ICU не требует:
Предоставлять возможность замены библиотеки пользователем.
Раскрывать исходный код ваших модификаций самой библиотеки ICU.
Использовать динамическую линковку (статическая линковка разрешена без условий).
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142752
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 10:42
[игнорируется]
Если имеется интерес какие библиотеки используются, то как минимум во внешних компонентах ядра можно увидеть:
- libfabric
Вопрос к ИИ:
Какая лицензия на библиотеку libfabric? Какие требования лицензии к коммерческим закрытым проектам, которые распространяют бинарники?

Ответ ИИ:
Библиотека libfabric (Open Fabrics Interfaces) распространяется под двойной лицензией: вы можете выбрать либо BSD (2-clause), либо GNU GPL версии 2.
Для коммерческих закрытых проектов наиболее выгодным является выбор лицензии BSD, так как она накладывает минимальные ограничения и не требует открытия вашего исходного кода.

Требования при распространении бинарников (по лицензии BSD):

Если вы включаете скомпилированную библиотеку libfabric в свой закрытый продукт, вам необходимо выполнить следующие условия:

Сохранение уведомлений:

Вы обязаны включить оригинальное уведомление об авторских правах libfabric, список условий лицензии и отказ от гарантий в документацию или другие материалы, сопровождающие поставку (например, в файл LEGAL, LICENSE или раздел «О программе»).

Метод линковки:

В отличие от LGPL, лицензия BSD не делает различий между статической и динамической линковкой. Вы можете линковать библиотеку любым способом (включая статический), не раскрывая код своего приложения.

Изменения в библиотеке:

Если вы изменили сам код libfabric, вы не обязаны публиковать эти изменения (при выборе лицензии BSD), хотя сообщество приветствует это. Вы можете оставить свои правки внутри библиотеки закрытыми.

Использование имени:

Вы не можете использовать названия проекта (libfabric, OpenFabrics Alliance) или имена его авторов для рекламы своего продукта без специального письменного разрешения.

Резюме для бизнеса:

libfabric максимально удобна для проприетарного ПО. Вам достаточно просто упомянуть авторов и текст лицензии в документации к вашему бинарному файлу.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142753
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Soqol_2.JPG
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142755
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Soqol_6.jpg
...
Рейтинг: 0 / 0
25 сообщений из 78, страница 3 из 4
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Выпустили альфу новой СУБД SoQoL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]