План вебинаров для конкурса «Open Source» от kruzh∅k

Серия демонстраций для участия в партнёрской программе «Базальт» Всероссийского конкурса open source проектов

0. Вводная часть

«Создатели», «Контрибьюторы», «Внедрение»

  1. Джингл про «Базальт СПО», ALT Linux Team и меня лично

  2. (коротко) Open Source и Free Software: права пользователя

  3. Linux: ядро и дистрибутивы на его основе.
  4. Дистрибутивы: СПО + «свободно распространяемое ПО» (например, firmware к аппаратуре, драйверы от NVidia и т. п.)
  5. Компоненты дистрибутива — пакеты. Хранилище пакетов — репозиторий (<!> не путать с git-репозиторием). Дистрибутив как подмножество репозитория.

  6. Сообщество вокруг дистрибутива: пользователи, системные администраторы, разработчики

Мораль: можно брать любой свободно распространяемый дистрибутив — и сделать из него любой другой при помощи репозитория, вопрос только — зачем?

1. Установка и модификация дистрибутива

«Создатели», «Контрибьюторы», «Внедрение»

Дисклеймер: предполагается не самый простой вариант установки, нацеленный на демонстрацию работы с дистрибутивом. Если нужен эффект «поставил и забыл», пользуйтесь «большими» дистрибутивами класса «Рабочая станция» / «Сервер».

  1. Дистрибутивы линейки ALT с точки зрения лицензии: сертифицированные, адаптированные к «реестру российского ПО» (с ограничениями только для юрлиц), полностью бесплатные.

  2. Где взять дистрибутив: https://getalt.org

  3. Процесс установки
  4. Особенности и мелкие хитрости ALT:
    • Просто для интереса: ввод «, и т. п.

    • APT + RPM (⇒ ограниченная совместимость с RH / CentOS / AlmaLinux / !Fedora)

    • Альтератор / ACC
    • Новое железо и un-def ядро / update-kernel / -t / remove-old-kernels (+ACC)

    • Большинство служб после установки выключены (достаточно просто включить)

      • + man control

  5. Установка / удаление пакетов из репозитория
    • С помощью Synaptic:
      • Свободное лицензирование: играем в «понаставил-понаудалял» ☺
    • С помощью apt-get
  6. Установка / удаление стороннего ПО
    • Адаптация пакетов свободно распространяемого ПО (например, Zoom или Google Chrome) с помощью EPM

    • AppImage (а также Flatpak и Snap

      • AppImage: сначала установить fuse, если его нет

        • На примере Ripes

    • Репозитории модулей для различных языков программирования: Python pip (а также Javascript, Ruby, Java, Perl и т. д.)

    • wine (не забыть i586-wine / i586-libwine)
      • <!> Вопросы лицензирования!

    • Иное: lutris, эмуляторы…
      • <!> Вопросы лицензирования!

  7. + в «Рабочая Станция K» есть application center

Мораль: есть всё, но чем дальше от репозитория, тем сложнее / ненадёжнее.

2. Информационные ресурсы сообщества

«Создатели», «Контрибьюторы», «Внедрение»

  1. Документация в составе дистрибутива: HTML-версия, в составе приложений, man/info, каталог /usr/share/doc

  2. Сайт сообщества: https://altlinux.org

  3. Списки рассылки (поиск по ним)

  4. Группа в Telegram

  5. Форум

  6. <!> Для формального взаимодействия: Система отслеживания ошибок

Мораль: взаимодействие с сообществом не только поможет вам в решении задачи, но и повысит ваша шансы в «партнёрской программе Базальт».


TODO

3. Принципы открытой разработки

«Создатели», «Контрибьюторы»

  1. Джингл про «Базальт СПО», ALT Linux Team и меня лично

  2. Open Source и Free Software

    • С точки зрения прав пользователя
    • С точки зрения возможности разработки
    • С точки зрения возможности бизнеса
  3. Копилефт

  4. Открытая разработка и свободное сообщество
    • Произвольность мотивации
    • Свобода входа-выхода
    • Динамическая иерархия
    • Информационное пространство как организующая среда
  5. Инструменты открытой разработки
    • Выбор ЯП (условно любой)
      • Корпус библиотек/модулей
      • Кроссплатформенность
    • Оркестрация сборки
    • Система контроля версий (желательно распределённая)
    • Информационное пространство:
      • Тезис: Общение
      • Антитезис: Документирование
      • Синтез: Issue tracking

4. Открытая кросс-платформенная разработка на примере (Python + ALT)

«Создатели», «Контрибьюторы»

  1. (коротко) Пакеты и дистрибутивы
  2. Организация рабочего окружения
    • Редактор и IDE
    • Сборочные инструменты
    • Среда запуска
  3. Ведение репозитория:
    • Генераты и хранимые файлы
    • Одно изменение — один коммит
    • Коммит не ломает функциональность
    • Оформление коммит-сообщений
  4. Запуск:
    • из "."
    • из произвольного каталога
    • в составе пакета (каталог заранее известен)
  5. Эксплуатационные зависимости
    • Части стандартной поставки Python (ALT-специфика): python3-moduels-sqlite, (-curses и -tkinter)
    • Модули Python
    • Кроссплатформенная дистрибьюция (например, python wheel)
      • Определение эксплуатационных зависимостей
      • Сборка, установка и запуск в чистом окружении Python wheel

5. Открытая разработка и сборка пакета ALT

«Создатели», «Контрибьюторы»

  1. (коротко) Пакеты и дистрибутивы
  2. Организация рабочего окружения
    • Редактор и IDE
    • Сборочные инструменты
    • Среда запуска
  3. Изолированная среда запуска — hasher

    • Установка и добавление пользователя
    • (кстати, Starterkits/builder)

    • Установка произвольных пакетов в hasher
    • Проброс сети
  4. Сборка статического бинарника (любой Linux)
    • Пример: Among sus

    • Инструменты сборки
    • Большие проекты: Qt
  5. Пример стороннего динамического бинарника:
    • Telegram (Qt статическая, остальные библиотеки — как повезёт)
    • Google chrome (комплект библиотек + LD_LIBRARY_PATH)
  6. Сборка пакета на Си (на примере стороннего проекта)
    • Попробуем MARST, если не хватит времени, то Among sus

    • Инструменты сборки
    • RPM и rpmbuild

    • Файл спецификации
    • buildreq (сборочные зависимости)

    • Эксплуатационные зависимости — когда нужно указывать явно?

FrBrGeorge/KruzhokALT2023 (последним исправлял пользователь FrBrGeorge 2023-04-28 11:02:56)