Правка документации

This commit is contained in:
Anton Titovets
2026-06-06 12:44:41 +03:00
parent e3f9d811e1
commit 2962bfdc58
2 changed files with 30 additions and 10 deletions
+15 -5
View File
@@ -8,20 +8,30 @@ Some tools in the OPI set use **external components (AddIns)** — Rust dynamic
## Compatibility
All external components bundled with OPI are built for **x64** and **x86** (**x32**) on **Windows** and **Linux**. They are shipped in ZIP archives with **four** native libraries — one per platform. On Windows this usually works out of the box; on Linux the components assume **`glibc`**, **`gcc`**\* and **`OpenSSL`**\*\* are available.
All external components bundled with OPI are built for **x64** and **x86** (**x32**) on **Windows** and **Linux**. They are shipped in ZIP archives with **four** native libraries — one per platform. Both platforms have compatibility constraints tied to specific OS versions and system libraries.
### Windows
Release builds of AddIns on Windows use a modern MSVC toolchain. The resulting `.dll` files may reference functions from Windows system libraries (`kernel32`, `bcrypt`, `ws2_32`, and others) that are only available starting with **Windows 8** and **Windows Server 2012**. On older systems — **Windows 7** and **Windows Server 2008 R2** — components from the standard OPI release may fail to load or crash when such functions are called.
For a self-service build targeting Windows 7 / Server 2008 R2, the repository includes [src/addins/legacy-win7](https://github.com/Bayselonarrend/OpenIntegrations/tree/main/src/addins/legacy-win7) with `setup-win7-build-env.bat` and `build-win7-package.bat`. See the directory [README.md](https://github.com/Bayselonarrend/OpenIntegrations/blob/main/src/addins/legacy-win7/README.md) for details. The build uses nightly Rust with `win7-windows-msvc` targets and can take noticeably longer than a standard release build. Use the resulting ZIP as an AddIn package, or replace the matching archive from the release for your delivery.
### Linux
On Linux the components assume **`glibc`**, **`gcc`**\* and **`OpenSSL`**\*\* are available.
> \* Applies to CLI and OneScript builds
> \*\* Applies to libraries that use TLS
### glibc
#### glibc
**glibc** is the C runtime that backs system calls and basics like `open`, `malloc`, `printf`, and so on. It is present on x86 Linux distros, but **version** matters. The minimum supported version for OPI AddIns is **2.18**, roughly matching CENTOS 7, RHEL 7, Fedora 19, Debian 8, and Ubuntu 12.04 (2013–2014 era). Older distros will not run libraries that depend on these components.
### gcc
#### gcc
The **gcc** toolchain version affects which **`libstdc++.so.6`** is on the system; that library is required for the AddIn engine in **CLI** and **OSPX** OPI builds. Minimum supported **gcc** is **7.5.0** (CentOS 8, RHEL 8, Fedora 28, Debian 10, Ubuntu 20.04, or older distros with **`devtoolset-7`** or equivalent).
### OpenSSL
#### OpenSSL
Libraries that implement **TLS** link against system **OpenSSL 3.x****`libssl.so.3`** and **`libcrypto.so.3`**. That version is the default starting with CENTOS 9, RHEL 9, Fedora 36, Debian 12, and Ubuntu 22.04 (2022–2023). On older distros that ship OpenSSL 1.1 or earlier, you must install or build **OpenSSL 3.x** separately.
@@ -66,7 +76,7 @@ Miscellaneous questions about how external components work or are built — not
**1. Can I rebuild the external components?**
Yes. The Rust sources live under [src/addins](https://github.com/Bayselonarrend/OpenIntegrations/tree/main/src/addins). Put the built binaries in a ZIP together with the [manifest file](https://github.com/Bayselonarrend/OpenIntegrations/blob/main/src/addins/MANIFEST.XML), then replace the archive from the release that matches your delivery. The [build.bat](https://github.com/Bayselonarrend/OpenIntegrations/blob/main/src/addins/build.bat) script in `src/addins` describes how release builds are produced.
Yes. The Rust sources live under [src/addins](https://github.com/Bayselonarrend/OpenIntegrations/tree/main/src/addins). Put the built binaries in a ZIP together with the [manifest file](https://github.com/Bayselonarrend/OpenIntegrations/blob/main/src/addins/MANIFEST.XML), then replace the archive from the release that matches your delivery. The [build.bat](https://github.com/Bayselonarrend/OpenIntegrations/blob/main/src/addins/build.bat) script in `src/addins` describes how release builds are produced. For Windows 7 / Server 2008 R2, use the separate [legacy-win7](https://github.com/Bayselonarrend/OpenIntegrations/tree/main/src/addins/legacy-win7) directory — see the [Windows](#windows) section above.
**2. Can OpenSSL-dependent components be rebuilt against OpenSSL 1.1 / 1.1.1k?**
+15 -5
View File
@@ -8,20 +8,30 @@ sidebar_position: 6
## Совместимость
Все внешние компоненты, добавляемые в ОПИ, собираются под x64 и x32 версии Windows и Linux. Они хранятся в специальных zip-архивах, состоящих из четырех файлов библиотек - по одному для каждой из платформ соответственно. Однако, в то время как на Windows с их использованием не возникает проблем, на Linux эти компоненты зависимы от наличия в системе трех вещей: `glibc`, `gcc`\* и `OpenSSL`\*\*
Все внешние компоненты, добавляемые в ОПИ, собираются под x64 и x32 версии Windows и Linux. Они хранятся в специальных zip-архивах, состоящих из четырех файлов библиотек - по одному для каждой из платформ соответственно. Однако на обеих платформах есть ограничения по совместимости с конкретными версиями ОС и системными библиотеками
### Windows
Релизные сборки компонент на Windows выполняются современным инструментарием MSVC. При этом в результирующие `.dll` могут попадать ссылки на функции системных библиотек Windows (`kernel32`, `bcrypt`, `ws2_32` и др.), доступные только начиная с **Windows 8** и **Windows Server 2012**. На более старых системах — **Windows 7** и **Windows Server 2008 R2** — компоненты из стандартного релиза ОПИ могут не загружаться или завершаться с ошибкой при обращении к таким функциям
Для самостоятельной сборки под Windows 7 / Server 2008 R2 в репозитории есть каталог [src/addins/legacy-win7](https://github.com/Bayselonarrend/OpenIntegrations/tree/main/src/addins/legacy-win7) со скриптами `setup-win7-build-env.bat` и `build-win7-package.bat`. Подробности — в [README.md](https://github.com/Bayselonarrend/OpenIntegrations/blob/main/src/addins/legacy-win7/README.md) этого каталога. Сборка использует nightly Rust с целевыми платформами `win7-windows-msvc` и может занимать заметно больше времени, чем стандартная. Готовый zip-архив можно использовать как пакет внешней компоненты или заменить им соответствующий архив из релиза в зависимости от используемой поставки
### Linux
На Linux компоненты зависимы от наличия в системе трех вещей: `glibc`, `gcc`\* и `OpenSSL`\*\*
> \* Касается CLI и OneScript версий <br/>
> \*\* Касается библиотек, использующих функционал TLS
### glibc
#### glibc
**glibc** — библиотека C, которая обеспечивает системные вызовы и основные функции, такие как open, malloc, printf и т.д. Она всегда есть в дистрибутивах Linux на платформе x86, но может отличаться номером версии. Минимальная версия для работы компонент ОПИ - **2.18**. Это соответствует таким дистрибутивам как CENTOS 7, RHEL 7, Fedora 19, Debian 8 и Ubuntu 12.04 (около 2013-2014 г.). На более старых дистрибутивах библиотеки, использующие внешние компоненты, работать не будут
### gcc
#### gcc
От версии набора компиляторов **gcc** зависит наличие в системе нужной версии библиотеки `libstdc++.so.6`, которая необходима для работы движка внешних компонент в CLI и OSPX версиях ОПИ. Минимальная версия - **7.5.0**. Это соответствует CentOS 8, RHEL 8, Fedora 28, Debian 10 и Ubuntu 20.04, а также может быть настроено и на более низких версиях при доступности `devtoolset-7`
### OpenSSL
#### OpenSSL
Библиотеки, имеющие функционал связанный с TLS, для его реализации линкуются к системным библиотекам **OpenSSL** версии 3.x - `libssl.so.3` и `libcrypto.so.3`. Это относительно новая версия, которая используется по умолчанию в дистрибутивах, начиная с CENTOS 9, RHEL 9, Fedora 36, Debian 12 и Ubuntu 22.04 (около 2022-2023 г.). Для работы в более старых дистрибутивах, использующих OpenSSL 1.1 или старше, OpenSSL 3.x должен быть установлен или собран из исходников отдельно
@@ -66,7 +76,7 @@ sidebar_position: 6
**1. Можно ли пересобрать внешние компоненты?**
Можно. Исходный код на Rust лежит в репозитории по пути [src/addins](https://github.com/Bayselonarrend/OpenIntegrations/tree/main/src/addins). Собранные компоненты должны быть помещены в zip-архив с [файлом манифеста](https://github.com/Bayselonarrend/OpenIntegrations/blob/main/src/addins/MANIFEST.XML). Далее можно произвести замену архива из релиза в зависимости от используемой поставки. Также в src/addins есть файл [build.bat](https://github.com/Bayselonarrend/OpenIntegrations/blob/main/src/addins/build.bat), описывающий процесс сборки релизных версий компонент
Можно. Исходный код на Rust лежит в репозитории по пути [src/addins](https://github.com/Bayselonarrend/OpenIntegrations/tree/main/src/addins). Собранные компоненты должны быть помещены в zip-архив с [файлом манифеста](https://github.com/Bayselonarrend/OpenIntegrations/blob/main/src/addins/MANIFEST.XML). Далее можно произвести замену архива из релиза в зависимости от используемой поставки. Также в src/addins есть файл [build.bat](https://github.com/Bayselonarrend/OpenIntegrations/blob/main/src/addins/build.bat), описывающий процесс сборки релизных версий компонент. Для Windows 7 / Server 2008 R2 используйте отдельный каталог [legacy-win7](https://github.com/Bayselonarrend/OpenIntegrations/tree/main/src/addins/legacy-win7) — см. раздел [Windows](#windows) выше
**2. Можно ли пересобрать внешние компоненты, зависимые от OpenSSL, под OpenSSL 1.1/1.1.1k?**