MOffice

Решения владельца: Qt, OneNote, права на собственный код

2026-10-04 · что нужно решить, почему, какие есть варианты, сколько стоит каждый и что я рекомендую. Основание: docs/11-open-source-reuse.md, docs/12-license-policy.md, отчёты docs/research/, официальные страницы Qt (FAQ по лицензиям и обязательства LGPL, проверено 2026-10-04). Это инженерная записка, не юридическое заключение: перед выпуском 1.0 все три пункта стоит показать юристу.

Принятые решения (2026-10-04)

№ Решение владельца
1 Qt: целевой вариант — коммерческая лицензия; в фазе 0 запросить предложение Qt; до покупки — только прототипы без распространения. Заменено 2026-10-04 решением № 4
2 OneNote: библиотеку под MPL не берём — своя реализация по спецификации (решение «полностью свой код»)
3 Правообладатель — Орос Алексей Михайлович, ИП Орос А.М.; заявление о правах заполнено; незакоммиченный код PasswordSafe сохранён в ветке wip/snapshot-2026-10-04
4 Своя оболочка без Qt (2026-10-04, слова владельца: «Нам нужно сделать такую же оболочку и использовать свою оболочку»; библия § 12, решение № 39). Интерфейс — собственный набор компонентов ui/meridian-ui на Rust; Qt не покупаем и не используем по LGPL; запрос в Qt Sales (docs/legal/qt-quote-request.md) не отправляем. Прототип своей оболочки сделан в тот же день: вид и поведение как у Qt-прототипа (SSIM 0.97–0.996), 39 тестов, кадр 8,7 мс, Linux и macOS — docs/research/own-shell.md, страница «Своя оболочка»

| 41 | Переименование в «MOffice» (2026-10-04, слова владельца: «Да, я даю разрешение на всё, продолжай, переименуй на MOffice, делай»): этап 1 — видимые имена во всех документах, макетах, интерфейсе и на сайтах; этап 2 (крейты, C ABI, URN, MIME, префикс ключей MRDN-, домены) — по отдельному слову. Библия §1, §5.1, §12 | | 42 | Разрешено управлять Microsoft Word на Mac владельца для эталонных рендеров корпуса (сессия A) | | 43 | Разрешены шрифты с разрешительными лицензиями по списку библии §4 в комплекте (файлы — A, записи в third_party.toml — B) | | 44 | Этап 2 переименования (2026-10-04, ответ владельца «MOffice» на вопрос «делать этап 2?», подтверждено сессии B напрямую): ключи MOFC-, URN urn:moffice:<app>:1, MIME application/vnd.moffice.<app>, домены moffice.24oros.ru/moffice-api.24oros.ru (старые работают), пути данных «MOffice»; крейты, C ABI, репозиторий — кодовое имя meridian. Библия §12 |

Ниже — исходный разбор, на основании которого приняты решения.

Сводка

№ Решение Срок Рекомендация Цена ошибки
1 Как лицензировать Qt 6 до начала фазы 1 (код оболочки) получить коммерческое предложение Qt в фазе 0; если на команду оболочки выходит ≤ 50 тыс. USD в год — покупать коммерческую до фазы 1; иначе работать по LGPL по чек-листу переход с LGPL на коммерческую позже возможен только по договорённости с Qt и может стоить дороже
2 Разрешить ли библиотеку OneNote под MPL-2.0 до фазы 5 (Notes) разрешить как неизменяемую зависимость без разрешения — 4–7 чел.-мес. своей работы
3 Права на код FlyType, ScreenPrompt, PasswordSafe, AXEL до переноса их кода в MOffice (фаза 0–1) подписать заявление о правах (шаблон — docs/legal/code-rights-statement.md); если продавать будет компания — договор об отчуждении прав на неё; зафиксировать незакоммиченный код спор о правах или невозможность доказать авторство при продаже/инвестиции

1. Лицензия Qt 6

Итог (2026-10-04): Qt не используем — своя оболочка (решение № 4 выше, библия № 39). Разбор ниже сохранён как обоснование: коммерческая Qt в РФ, скорее всего, недоступна, а LGPL противоречит решению «полностью свой код».

Что это и почему важно

Qt — библиотека, на которой построен весь интерфейс MOffice на всех трёх ОС (окна, лента, диалоги, ввод, печать, доступность). Ядро на Rust от Qt не зависит. Qt распространяется в трёх вариантах: GPL (для нас запрещён), LGPLv3 (бесплатно, с обязательствами) и коммерческая лицензия (платно, без обязательств). Часть модулей Qt доступна только под GPL или коммерческой лицензией: Qt Charts, Qt Graphs, Qt Data Visualization, Qt Virtual Keyboard, Qt Quick 3D, Qt Lottie, Qt Network Authorization, Qt Quick Compiler (qmlsc) и другие. Мы их и так не используем: диаграммы, вход OAuth и прочее пишем сами.

Вариант А. LGPLv3 (бесплатно)

Что обязаны делать (по официальной странице Qt об обязательствах LGPL):

  1. Только динамическая линковка: Qt поставляется отдельными DLL/dylib/so. При статической сборке наше приложение само попадает под LGPL — это запрещено.
  2. Пользователь должен иметь возможность заменить библиотеки Qt своей версией и запустить программу. Наш EULA не может запрещать это, включая обратную разработку в той мере, в какой она нужна для замены Qt.
  3. Отдать исходники используемой Qt (вместе с нашими правками Qt, если они будут) — архивом на сайте или письменным предложением.
  4. Показать текст LGPL пользователю — в окне «О программе → Лицензии открытого ПО» (макет OS-02).
  5. Правки в самой Qt публикуем (правила MPL/LGPL распространяются только на код Qt, не на наш).
  6. Не использовать модули только под GPL.

Ограничения на практике:

Стоимость: 0 ₽ лицензий; ≈1–2 чел.-мес. на соблюдение (сборка с отдельными библиотеками, архив исходников, проверка в CI).

Вариант Б. Коммерческая лицензия Qt

Вариант В. Начать на LGPL, решить позже

Работает технически (мы не используем GPL-модули и линкуем динамически), но переход потребует переговоров с Qt и может обойтись дороже. Допустим только на прототипах фазы 0, которые никому не распространяются.

Рекомендация

  1. В фазе 0 (январь–апрель 2027) прототипы оболочки делать на LGPL — их никому не распространяем, обязательств нет.
  2. До конца фазы 0 запросить у Qt коммерческое предложение с явным вопросом: «лицензии только на команду оболочки, ядро на Rust без Qt».
  3. Если выходит ≤ 50 тыс. USD в год — покупать коммерческую до старта фазы 1: это снимает все ограничения, включая магазины приложений.
  4. Если дороже — остаёмся на LGPL с чек-листом выше (≈ 1–2 чел.-мес. на соблюдение), магазинные сборки переносим на потом.

Что нужно от вас сейчас: согласие на этот порядок (прототипы на LGPL, запрос цены у Qt в фазе 0).


2. Библиотека OneNote (onenote_parser, лицензия MPL-2.0)

Что это и зачем

MOffice Notes должен импортировать записные книжки OneNote — это главный путь миграции пользователей Microsoft. Готовая библиотека onenote_parser (проект onenote.rs, Rust, ≈ 18,8 тыс. строк, версия 2.0, последнее обновление август 2026) читает файлы .one и .onetoc2, в том числе книжки из OneDrive, с текстом, таблицами, картинками, вложениями, рукописными штрихами и формулами. Записывать формат OneNote она не умеет — нам это и не нужно, только импорт. Архив .onepkg распаковываем отдельным крейтом cab (MIT).

Что значит MPL-2.0 для нас

MPL — «копилефт на уровне файла»:

Варианты

Вариант Работа Риски
А. Разрешить как неизменяемую зависимость ≈ 1 чел.-мес. на встраивание (песочный процесс кодеков, тесты на корпусе) если понадобится правка — публикуем правку этого файла или отправляем её автору; одна строка в «О программе»
Б. Своя реализация по спецификации Microsoft [MS-ONESTORE]/[MS-ONE] 4–7 чел.-мес. (11–15 тыс. строк; чернила и формулы — по реверсу) дольше; ошибки совместимости на редких файлах
В. Импорт облачных книжек через Microsoft Graph ≈ 2 чел.-мес. только онлайн и с аккаунтом Microsoft; теряются штрихи и раскладка страницы; нужна регистрация приложения в Microsoft

Рекомендация

Вариант А: разрешить onenote_parser без изменений, в отдельном процессе кодеков, с зафиксированной версией и зеркалом на repoBase (meridian-oss/onenote-rs уже создано). Экономия ≈ 4–6 чел.-мес. Если позже понадобятся правки — оформлять их как вклад автору проекта. Решение нужно к фазе 5 (2029 г.), но лучше принять сейчас — от него зависит план эпика «Кодеки PIM».

Что нужно от вас: «да» или «нет».


3. Права на ваш собственный код

Почему это вопрос

Мы собираемся перенести в MOffice части ваших проектов: шифрование и синхронизацию из PasswordSafe, захват экрана из ScreenPrompt, диктовку и сервер аккаунтов из FlyType, инструменты формул и OCR из Formulник/AXEL. Код ваш — все коммиты, сделанные людьми, идут от ваших учётных записей. Но есть три формальности, которые всплывают при продаже продукта, привлечении инвестиций или споре:

  1. В файлах LICENSE правообладатель записан условно («FlyType», «ScreenPrompt contributors») — неясно, кто именно владелец.
  2. Большая часть кода написана с помощью ИИ-инструментов (в истории FlyType ≈ 1 735 коммитов с отметкой Cursor, в AXEL ≈ 224 с отметкой Claude). По условиям этих сервисов права на результат принадлежат пользователю, но в российском праве автором может быть только человек — поэтому полезно письменно зафиксировать, что код создан вами с использованием инструментов и что права на него принадлежат вам.
  3. Часть кода не зафиксирована в git — в PasswordSafe это ≈ 27 % кода на Rust. Без коммита нет датированного доказательства авторства, а сам код можно потерять.

Что сделать

  1. Подписать заявление о правах — шаблон: docs/legal/code-rights-statement.md. В нём: перечень репозиториев, подтверждение авторства, роль ИИ-инструментов как инструментов, отсутствие сторонних соавторов, перечень сторонних компонентов внутри (они остаются под своими лицензиями).
  2. Решить, кто будет правообладателем MOffice:
    • если продавать будете вы как физлицо или ИП — заявления достаточно;
    • если будет компания (ООО) — нужен договор об отчуждении исключительного права (или лицензионный договор) от вас компании на код этих проектов и на сам MOffice. Без этого компания не владеет кодом.
  3. Зафиксировать незакоммиченный код в PasswordSafe (и проверить остальные проекты):
    cd ~/Mac1amoros/PasswordSafe && git status --short | head -50
    затем коммит и отправка в ваш репозиторий. Могу сделать это сам по вашей команде.
  4. По желанию — государственная регистрация программ для ЭВМ в Роспатенте (добровольная; даёт официальное доказательство авторства и даты) — для MOffice имеет смысл после первого выпуска.
  5. Не переносить из ваших проектов чужое: запись через FFmpeg с libx264 (GPL) в ScreenPrompt, веса Silero (некоммерческие) и edge-tts (LGPL) в FlyType, процесс LibreOffice в AXEL — остаются в своих проектах.

Что нужно от вас: (а) кто правообладатель MOffice — вы лично или компания; (б) подписать заявление; (в) команда «закоммить PasswordSafe» или сделаете сами.


Остальные решения из отчёта (можно принять по умолчанию)

Вопрос Рекомендация по умолчанию
Словари под MPL/LGPL (fr, uk, es, pt, da, el, kk, sv, be) не встраивать; загрузка пользователем из первоисточника
База автонастройки почты ISPDB (MPL) не встраивать; запрос к публичному сервису только с согласия пользователя
GStreamer на Linux (LGPL) разрешить как системную библиотеку
HEIC и RAW декодеры ОС на Windows и macOS; на Linux — необязательная системная библиотека
Шрифт Intos (клон Aptos, OFL) включить после юридической проверки
Тестовые серверы Stalwart и Dovecot (AGPL) разрешить только как внешние контейнеры в CI