План вебинаров для конкурса «Open Source» от kruzh∅k
Серия демонстраций для участия в партнёрской программе «Базальт» Всероссийского конкурса open source проектов
0. Вводная часть
«Создатели», «Контрибьюторы», «Внедрение»
Джингл про «Базальт СПО», ALT Linux Team и меня лично
(коротко) Open Source и Free Software: права пользователя
- Linux: ядро и дистрибутивы на его основе.
- Дистрибутивы: СПО + «свободно распространяемое ПО» (например, firmware к аппаратуре, драйверы от NVidia и т. п.)
Компоненты дистрибутива — пакеты. Хранилище пакетов — репозиторий (<!> не путать с git-репозиторием). Дистрибутив как подмножество репозитория.
Сообщество вокруг дистрибутива: пользователи, системные администраторы, разработчики
Мораль: можно брать любой свободно распространяемый дистрибутив — и сделать из него любой другой при помощи репозитория, вопрос только — зачем?
1. Установка и модификация дистрибутива
«Создатели», «Контрибьюторы», «Внедрение»
Дисклеймер: предполагается не самый простой вариант установки, нацеленный на демонстрацию работы с дистрибутивом. Если нужен эффект «поставил и забыл», пользуйтесь «большими» дистрибутивами класса «Рабочая станция» / «Сервер».
Дистрибутивы линейки ALT с точки зрения лицензии: сертифицированные, адаптированные к «реестру российского ПО» (с ограничениями только для юрлиц), полностью бесплатные.
Где взять дистрибутив: https://getalt.org
- Процесс установки
- Особенности и мелкие хитрости ALT:
Просто для интереса: ввод «, — и т. п.
APT + RPM (⇒ ограниченная совместимость с RH / CentOS / AlmaLinux / !Fedora)
- Альтератор / ACC
Новое железо и un-def ядро / update-kernel / -t / remove-old-kernels (+ACC)
Большинство служб после установки выключены (достаточно просто включить)
+ man control
- …
- Установка / удаление пакетов из репозитория
- С помощью Synaptic:
- Свободное лицензирование: играем в «понаставил-понаудалял» ☺
- С помощью apt-get
- С помощью Synaptic:
- Установка / удаление стороннего ПО
Адаптация пакетов свободно распространяемого ПО (например, Zoom или Google Chrome) с помощью EPM
Репозитории модулей для различных языков программирования: Python pip (а также Javascript, Ruby, Java, Perl и т. д.)
- wine (не забыть i586-wine / i586-libwine)
Вопросы лицензирования!
- Иное: lutris, эмуляторы…
Вопросы лицензирования!
- + в «Рабочая Станция K» есть application center
Мораль: есть всё, но чем дальше от репозитория, тем сложнее / ненадёжнее.
2. Информационные ресурсы сообщества
«Создатели», «Контрибьюторы», «Внедрение»
Документация в составе дистрибутива: HTML-версия, в составе приложений, man/info, каталог /usr/share/doc
Сайт сообщества: https://altlinux.org
Для формального взаимодействия: Система отслеживания ошибок
Мораль: взаимодействие с сообществом не только поможет вам в решении задачи, но и повысит ваша шансы в «партнёрской программе Базальт».
TODO
3. Принципы открытой разработки
«Создатели», «Контрибьюторы»
Джингл про «Базальт СПО», ALT Linux Team и меня лично
- С точки зрения прав пользователя
- С точки зрения возможности разработки
- С точки зрения возможности бизнеса
- Открытая разработка и свободное сообщество
- Произвольность мотивации
- Свобода входа-выхода
- Динамическая иерархия
- Информационное пространство как организующая среда
- Инструменты открытой разработки
- Выбор ЯП (условно любой)
- Корпус библиотек/модулей
- Кроссплатформенность
- Оркестрация сборки
- Система контроля версий (желательно распределённая)
- Информационное пространство:
- Тезис: Общение
- Антитезис: Документирование
- Синтез: Issue tracking
- Выбор ЯП (условно любой)
4. Открытая кросс-платформенная разработка на примере (Python + ALT)
«Создатели», «Контрибьюторы»
- (коротко) Пакеты и дистрибутивы
- Организация рабочего окружения
- Редактор и IDE
- Сборочные инструменты
- Среда запуска
- Ведение репозитория:
- Генераты и хранимые файлы
- Одно изменение — один коммит
- Коммит не ломает функциональность
- Оформление коммит-сообщений
- Запуск:
- из "."
- из произвольного каталога
- в составе пакета (каталог заранее известен)
- Эксплуатационные зависимости
- Части стандартной поставки Python (ALT-специфика): python3-moduels-sqlite, (-curses и -tkinter)
- Модули Python
- Кроссплатформенная дистрибьюция (например, python wheel)
- Определение эксплуатационных зависимостей
- Сборка, установка и запуск в чистом окружении Python wheel
5. Открытая разработка и сборка пакета ALT
«Создатели», «Контрибьюторы»
- (коротко) Пакеты и дистрибутивы
- Организация рабочего окружения
- Редактор и IDE
- Сборочные инструменты
- Среда запуска
Изолированная среда запуска — hasher
- Установка и добавление пользователя
(кстати, Starterkits/builder)
- Установка произвольных пакетов в hasher
- Проброс сети
- Сборка статического бинарника (любой Linux)
Пример: Among sus ☺
- Инструменты сборки
- Большие проекты: Qt
- Пример стороннего динамического бинарника:
- Telegram (Qt статическая, остальные библиотеки — как повезёт)
- Google chrome (комплект библиотек + LD_LIBRARY_PATH)
- Сборка пакета на Си (на примере стороннего проекта)
Попробуем MARST, если не хватит времени, то Among sus
- Инструменты сборки
RPM и rpmbuild
- Файл спецификации
buildreq (сборочные зависимости)
- Эксплуатационные зависимости — когда нужно указывать явно?