| Назва | Заснування | Стан | Учасники | |
|---|---|---|---|---|
| Автоматичний Складальник OpenSCADA | Березень 2015 |
Імплементовано у скриптах побудови, опрацювання репозиторіїв і гілок та перевірки цілей щодо складання до 100 цілей за допомогою: CHROOTів репозиторіїв Linux, VPS та різних під-оточень. Результатом функціонування Складальника є: свіжі та підписані репозиторії Linux, штампи Live Дисків та інші бінарні архіви OpenSCADA. |
Роман Савоченко | |
| Опис | ||||
Спрямуванням підпроєкту є спрощення розповсюдження-дистриб'юції проєкту OpenSCADA через автоматичне складання бінарних пакетів, їх готових до використання репозиторіїв та інших складних дистрибутивів на кшталт Живих Дисків.
| ||||
Складач представлено двома загальними BASH-скриптами та декільком BASH-скриптами перевірки:
- oscadaCheck* — прості скрипти із переліком профілів складання для перевірки у oscadaRepBranches і залежно від хосту складання; вони зазвичай запускаються CRON-планувальником для нічних складань або вручну. Відомий наразі перелік профілів відповідно до Таблиці 2:
- oscadaCheck — загальний, використовується на сервері OpenSCADA;
- oscadaCheck_WorkAtLTS — додатковий загальний, використовується на сервері OpenSCADA при новому випуску LTS версії;
- oscadaCheck_ExtGen — зовнішній загальний, використовується на Домашньому ПК Автора;
- oscadaCheck_ExtGen_WorkAtLTS — додатковий зовнішній загальний, використовується на Домашньому ПК Автора при новому випуску LTS версії;
- oscadaCheck_RPi — зовнішні "Raspbian" цілі, використовується на RPi Автора;
- oscadaCheck_RPi_WorkAtLTS — додаткові зовнішні "Raspbian" цілі, використовується на RPi Автора при новому випуску LTS версії.
- oscadaRepBranches — для опрацювання переліку профілів вказаних в командному рядку у форматі "{Target}[:option[,optionN]][ =]{EN}{ForWork}{ForLTS}{ForLTSServ}{OmitSourceTree}", де:
- "EN"{0|1} — увімкнення цілі;
- "ForWork"{0|1} — включення до складання для Робочої (Work) гілки;
- "ForLTS"{0|1} — включення до складання для загальних оновлень Стабільної (LTS) гілки;
- "ForLTSServ"{0|1} — включення до складання для сервісних оновлень Стабільної (LTS) гілки;
- "OmitSourceTree"{0|1} — оминати завантаження дерева вихідних із SVN, переважно для складання живих штампів.
- oscadaBuild — для безпосереднього складання і розміщення готових пакетів та іншого для Стабільної (LTS) і Робочої (Work) гілок OpenSCADA.
Структура файлів системи автоматичного складання передбачає:
\-- /data/
|-- oscada/
| |-- bin/
| | |-- oscadaBuild
| | |-- oscadaRepBranches
| | |-- oscadaCheck
| | \-- oscadaCheck_WorkAtLTS
| |-- build/ => робоча тека складання, яка містить розпаковані CHROOTи
| | |-- log/ => журнали складань
| | \-- *.stamp => штампи-ознаки вдалих складань
| \-- chroot-data.tgz => містить GPG ключ підпису пакетів і їх репозиторіїв для складальника
\-- share_res/
\-- ftp/ => FTP-тека результатів складання
|-- {Debian,ALTLinux}/ => теки репозиторіїв Linux Дистрибутивів Автоматизації
|-- Misc/
| \-- chroots/ => тека архівів складальних CHROOTів
\-- OpenSCADA/ => теки репозиторіїв OpenSCADA
|-- LTS/ => теки Стабільних (LTS) репозиторіїв OpenSCADA
\-- Work/ => теки Робочих (Work) репозиторіїв OpenSCADA
Автоматична складальна система підтримує також її розосередження за специфічними оточеннями (для деяких типів складання) на кшталт різних апаратних платформ, інколи замість їх CHROOTів. Розосередження відбувається перенесенням частини автоматичного складальника назовні шляхом: розгортання структури на горі лише для потрібних цілей, організації локального файлового серверу і планування синхронізації скрипту oscadaSyncFtp на ядрі автоматичного складальника (скажіть Роману Савоченко щодо цього) — основний FTP-сервер.
Наразі автоматичний складальник передбачає складання:
- Робочої (Work) версії (1) щодо останньої SVN-ревізії із тегом "(stable)";
- Стабільної (LTS) версії (0.9.U.S) щодо загального (U) та сервісного (S) оновлення.
Для складань Автора, зазначені скрипти адаптовано до роботи із FTP-текою результатів складань безпосередньо на сервері OpenSCADA за допомогою sshfs, а також розширено опціями задля можливості довільного визначення SVN-ревізії до обох гілок.
Адаптація Живого проєкту Debian до цього проєкту:
- /usr/lib/live/build/binary_iso — додання аргументу "-input-charset UTF-8" до змінної XORRISO_OPTIONS для дозволу на диску файлів в UTF-8;
- /usr/lib/live/build/installer_debian-installer — взято із Debian 12 оскільки він із Debian 13 має помилки зі складанням для Debian 10,11.
Table 1: Реалізовані профілі — типи складання.
| Ціль | Результат | Метод складання | Зовнішнє розгортання | Додаткове |
|---|---|---|---|---|
| SrcTar | Пакети вихідних, запаковані XZ TAR пакетами | CHROOT "Debian_7_32" | Так | Оновлює документацію OpenSCADA для LTS. |
| SrcRPM, CentOs*, SuSE*, Fedora*, ALTLinux*, Mandriva* | Вихідні та бінарні RedHat пакети для апаратних архітектур x86_32 і x86_64 | CHROOT | Так | Допускає підлаштування до специфіки латками "openscada_*.patch". Викликом наданого сценарію "reposUpdate" у теці результатів, репозиторії пакетів можуть бути: створені, оновлені, підписані щодо пакетів та репозиторію загалом. Цільові параметри:
|
| Debian*, Raspbian*, Ubuntu* | Пакети Debian для апаратних архітектур x86_32, x86_64, ARMHF, ARM64, NATIVE | CHROOT | Так | Допускає підлаштування до специфіки латками "openscada[-{platform}]_*.patch". Викликом наданого сценарію "reposUpdate" у теці результатів, репозиторії пакетів можуть бути: створені, оновлені, підписані щодо пакетів та репозиторію загалом. Цільові параметри:
|
| Nokia* | Пакети Debian для апаратної архітектури ARMEL | Scratchbox | Так | Допускає підлаштування до специфіки латками "openscada_*.patch". |
| Gen32PLC*, LP8x81* | TAR пакети прошивок ПЛК для архітектури x86_32 | VPS: bldrALT32.oscada | Ні | Використовує mkimage профілі ALTLinux: "mkimage-profiles-5-plc", "mkimage-profiles-5-plc-LP8x81", "mkimage-profiles-6-plc", "mkimage-profiles-6-plc-LP8x81". Цільові параметри:
|
| Live_ALT | Гібридний ISO штамп або TAR пакет Живого Диску Linux дистрибутиву Автоматизації заснованого на ALTLinux | VPS: bldrALT32.oscada | Ні | Використовує ALTLinux mkimage профіль "mkimage-profiles-6-kdesktop". Оновлює MD5SUM ISO штампів у файлі "MD5SUM". Цільові параметри:
|
| Live_Deb | Гібридний ISO штамп Живого Диску Linux дистрибутиву Автоматизації заснованого на Debian | VPS: bldrDeb8.oscada; home.home | Ні | Використовує профілі Живої Побудови Debian: live7-32, live7-64, live8-32, live8-64, live9-32, live9-64, live10-32, live10-64, live11-32, live11-64. Оновлює MD5SUM ISO штампів у файлі "MD5SUM". |
| ICP_DAS_LP_ARM, SMH2Gi | TAR пакети прошивок ПЛК для апаратної архітектури ARM. | VPS: bldrDeb8.oscada + TOOLCHAIN | Ні | Використовує відповідні TOOLCHAINs. |
Таблиця 2: Актуальні цілі складання (на 01.01.7531/01.03.2023).
| Ціль(і) | OpenSCADA | Хост | Примітки |
|---|---|---|---|
| SrcTar | Work+LTS | oscada.org | |
| SrcRPM | LTS | oscada.org | |
| Debian | |||
| Debian_13_{32,64,armhf,arm64} | - | ||
| Debian_13_{32,64,armhf,arm64}:rep | Work+LTS+ServLTS | home.home | |
| Debian_12_{32,64,armhf,arm64} | - | ||
| Debian_12_{32,64,armhf,arm64}:rep | Work+LTS+ServLTS | home.home | |
| Debian_11_{32,64,armhf,arm64} | - | ||
| Debian_11_{32,64,armhf,arm64}:rep | Work+LTS+ServLTS | home.home | |
| Debian_10_{32,64,armhf} | - | ||
| Debian_10_{32,64,armhf}:rep | Work+LTS | home.home | |
| Debian_9_{32,64,armhf} | - | ||
| Debian_9_{32,64,armhf}:rep | Work+LTS | oscada.org | |
| Debian_8_{32,64,armhf} | - | ||
| Debian_8_{32,64,armhf}:rep | Work+LTS | oscada.org | |
| Debian_7_{32,64} | - | ||
| Debian_7_{32,64}:rep | Work+LTS | oscada.org | |
| Debian_6_{32,64} | - | ||
| Raspbian, the same Debian but for Raspberry Pi — a very specific ARMv6 environment for the BCM2835 and early chips mostly. | |||
| Raspbian_9_native | Work+LTS | pi.home | |
| Raspbian_8_native | LTS | pi.home | |
| Ubuntu | |||
| Ubuntu_26.04_{32,64} | Work+LTS | home.home | The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages. |
| Ubuntu_24.04_{32,64} | Work+LTS | home.home | The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages. |
| Ubuntu_22.04_{32,64} | LTS | home.home | The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages. |
| Ubuntu_20.04_{32,64} | LTS | home.home | The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages. |
| Ubuntu_18.04_{32,64} | LTS | home.home | Very new Linux kernel for CHROOT on oscada.org |
| Ubuntu_16.04_{32,64} | LTS | oscada.org | |
| Ubuntu_14.04_{32,64} | LTS | oscada.org | |
| Ubuntu_12.04_{32,64} | LTS | oscada.org | |
| Ubuntu_11.10_{32,64} | - | ||
| Ubuntu_10.04_{32,64} | - | ||
| CentOs | |||
| CentOs_8_64:dev | Work+LTS | home.home | |
| CentOs_7_64 | LTS | oscada.org | |
| CentOs_6_{32,64} | LTS | oscada.org | |
| SuSE | |||
| SuSE_15_64:dev | LTS | home.home | Very new Linux kernel for CHROOT on oscada.org. GPG2 needs for mounting the system folders. |
| SuSE_13_{32,64} | LTS | oscada.org | |
| SuSE_12_{32,64} | LTS | oscada.org | |
| SuSE_11_{32,64} | - | ||
| ALTLinux | |||
| ALTLinux_7_{32,64} | - | ||
| ALTLinux_7_{32,64}:rep | LTS | oscada.org | |
| ALTLinux_6_{32,64} | - | ||
| ALTLinux_6_{32,64}:rep | Work+LTS | oscada.org | |
| ALTLinux_5_{32,64} | - | ||
| ALTLinux_5_{32,64}:rep | - | ||
| Fedora | |||
| Fedora_12_32 | LTS | oscada.org | |
| Mandriva | |||
| Mandriva_2011_{32,64} | - | ||
| Mandriva_2010_{32,64} | - | ||
| Nokia | |||
| Nokia_800 | LTS | oscada.org | |
| Nokia_900 | Work+LTS | oscada.org | |
| Nokia_950 | LTS | oscada.org | |
| PLC+Embedded | |||
| Gen32PLC_ALT6 | LTS | oscada.org | |
| Gen32PLC_ALT6:rt1 | LTS | oscada.org | |
| Gen32PLC_ALT5 | - | ||
| Gen32PLC_ALT5:UI | - | ||
| LP8x81_ALT6 | LTS | oscada.org | |
| LP8x81_ALT6:rt1 | LTS | oscada.org | |
| LP8x81_ALT5 | - | ||
| LP8x81_ALT5:UI | - | ||
| SMH2Gi | LTS | oscada.org | |
| ICP_DAS_LP_ARM | - | ||
| TionPro270 | - | ||
| Live | |||
| Live_Deb13_64 | Work+LTS | home.home | |
| Live_Deb12_{32,64} | Work+LTS | home.home | |
| Live_Deb11_{32,64} | Work+LTS | home.home | |
| Live_Deb10_{32,64} | Work+LTS | home.home | |
| Live_Deb9_{32,64} | Work+LTS | oscada.org | |
| Live_Deb8_{32,64} | Work+LTS | oscada.org | |
| Live_Deb7_{32,64} | Work+LTS | oscada.org | |
| Live_ALT | Work+LTS | oscada.org | |
| Live_ALT:flash | - | ||