Calmira GNU/Linux(-libre) news
24 subscribers
39 photos
1 file
20 links
Calmira GNU/Linux(-libre) когда-то была моим pet-проектом. Но сейчас этот дистрибутив разросся в нечто большее.

GitLab: https://gitlab.com/calmiralinux
Наш чат по редактору Helix: @helix_ru_chat
Matrix: https://matrix.to/#/#calmlinux:matrix.org
Download Telegram
Тем временем завершился рефакторинг cport. По причине моей занятости и отсутствия желания что-либо делать он затянулся на несколько месяцев, ибо коммитил не так часто, как хотелось.

Из планов на будущее:

- Возобновить работу над пакетным менеджером cpkg.
- Интеграция с AppImage Installer.
👍31🎄1
Начали работу над заполнением документации дистрибутива.

https://gitlab.com/calmiralinux/documentation

На данный момент там только один репозиторий - с HandBook, однако вскоре сюда переместятся и другие репы - с документацией по cport, системе сборки и пр. Документация как для разработчиков (описание принципа работы, API и т.д.), так и для обычных пользователей (использование, принцип работы).
🔥5
С новым годом!

Повторюсь, что прошедший год не просто сложный, он дерьмовый. Однако он показал, кто является нормальным человеком, а кто не пойми кем. Показал, что такое честность и порядочность, смелость и справедливость, что такое насилие и террор, скрывающиеся под маской добра. Этот год, в каком-то смысле, расставил всё на свои места.

Хочу пожелать вам оставаться людьми в любой ситуации. Ну и чтобы самые главные желания сбывались :)
9
Продолжается работа над сборочными скриптами. На данный момент готовы скрипты для подготовки системы к сборке, а также скрипты для сборки кросс-компилятора и временного инструментария. Сейчас это всё тестируется.

В том случае, если тестирование системы сборки и скриптов завершится успешно, начнём писать скрипты для Core-редакции (и когда уже переход на OpenRC?). А там и до четвёртого экспериментального билда Calmira 2.0 GNU/Linux-libre недалеко.
🔥3
На этой неделе в Calmira GNU/Linux-libre №6

Период с 1 по 7 января (прим. автора).

Работа над дистрибутивом продолжается и в новогодние праздники - всё равно делать нечего. Работаем над системой сборки и новой программой в составе Calmira GNU/Linux-libre - vcsetup. Программа предназначена для настройки языка, шрифта и раскладки клавиатуры в консоли.

Предназначение программы

1. Отсутствие удобных средств настройки для Calmira.
2. То, что существует в загрузочных скриптах для SysVInit - это неудобно и, что самое главное - небезопасно. В конфигурационный файл с этими настройками можно записать всё, что угодно, а это, вкупе с тем, что скрипт для установки параметров консоли запускается от имени root, является серьёзной угрозой безопасности.
3. При переходе на OpenRС всё равно бы потребовалось какое-то решение для установки параметров консоли.

В планах программа должна состоять из двух компонентов:

1. vcsetup - интерактивная псевдографическая программа для настройки;
2. vcload - программа читает параметры из /etc/... и применяет их для всех пользователей системы при её загрузке.

#ThisWeekInCalmira
1
На этой неделе в Calmira GNU/Linux-libre №7

Период с 8 по 14 января (прим. автора).

Новогодние праздники уже закончились, поэтому самое время работать над дистрибутивом в полную силу. Например, уже готова альфа версия программы vcsetup. Повторюсь, это программа для настройки виртуальной консоли системы. Написана на Rust. Программа обладает простым псевдографическим интерфейсом (см. скрин ниже). Она позволяет настроить язык системы, шрифт консоли, раскладку клавиатуры и loglevel для программы dmesg. vcsetup только формирует красивый псевдографический интерфейс пользователя и пишет установленные данные в конфигурационный файл. Кроме того, она может сбрасывать настройки консоли до заводских. Есть программа vcsetup, предназначенная для установки этих параметров при загрузке системы. Отдельное спасибо одному из разработчиков дистрибутива, который, в общем-то, и написал эти две утилиты.

Кстати, занимаемся и сборочными инструкциями системы. На данный момент есть несколько проблем, которые постепенно будут исправляться. В конце этой недели должен выйти корректирующий билд v2.0a1e3.1, улучшающий работу с работой сети. Вообще, сеть - это отдельная проблема в Calmira GNU/Linux-libre. И дело не только в использовании ядра, очищенного от несвободных драйверов и прошивок (из-за чего некоторые модели сетевых карт попросту не поддерживаются). Всё дело в ненормальном процессе настройки сети. Как в случае настройки консоли - нужно редактировать непонятные BASH-скрипты, использовать какие-то непонятные и нелогичные параметры и танцевать с бубном.

Параллельно с этим пишем руководство пользователя Calmira GNU/Linux-libre. Хочу описать не только предназначение системы, её установку и какие-то специфичные для неё вещи, но и кратко пройтись по основам GNU/Linux и UNIX. Описать управление правами доступа, процессами, пользователями, работу с программным обеспечением, текстовым редактором Nvim, процесс настройки системы для себя и всякие такие вещи. Над руководством сейчас занимаюсь только я. А один человек в короткий срок (планируется выпустить окончательную версию рук-ва вместе с релизом Calmira 2.0 GNU/Linux-libre, который хочу выпустить в середине-конце мая) физически не может написать большой объём. Написано 118 страниц с описанием процесса установки и использования, управления процессами, работы с файлами и пр.

#ThisWeekInCalmira
🔥3
Скриншот vcsetup
🔥4🤩3
Теперь в случае, если во время записи конфига произошла ошибка, окна vcsetup окрашиваются в другой цвет.
👍4🔥1
Сформировали корректирующий билд Calmira v2.0a1e3.1 GNU/Linux-libre.

Список изменений и ссылка для скачивания ниже:

https://gitlab.com/calmiralinux/CalmiraLinux/-/releases/v2.0a1e3.1

Из основных изменений:

- Добавление в поставку дистрибутива собственных компонентов для просмотра сведений о системе, настройки виртуальных консолей и просмотра кратких справочных сообщений.

- Поставка наравне с ядром Linux-libre обычного ядра Linux. По умолчанию оно не используется и даже отсутствует в меню загрузки, однако кто мешает его туда добавить?

- Обновление менеджера системы портов cport, как и самих портов.

———————————————————

Возможно, в этом месяце будет выпущено ещё несколько мелких корректирующих выпусков 3.2, 3.3 и т.д.
5
На этой неделе в Calmira GNU/Linux-libre №8

Период с 15 по 21 января (прим. автора).

Продолжаем работать над vcsetup и vcload. Исправили несколько багов, теперь эти программы работают корректно.

Но самым крупным событием, думаю, стал релиз корректирующего билда Calmira 2.0a1e3.1 GNU/Linux-libre, в котором мы улучшили поддержку сети - подключаться к ней теперь стало проще, обновили cport и систему портов, а также добавили те самые vcsetup и vcload. Кроме того, в качестве опции поставляется ядро Linux (основное ядро Linux-libre). Скачать можно здесь.

Работаем над сборочными инструкциями для Core-редакции. Реализуем поддержку архитектуры aarch64. Может быть когда-нибудь будем собирать и для неё.

В опросе, посвящённому выбору новой системы инициализации вместо SysVInit, победу одержал OpenRC. Поэтому на этой неделе начали миграцию на него. Из системы портов удалили порты с SysVInit, добавили порт с OpenRC. Сейчас работаем над созданием новых загрузочных скриптов для этого инита.

В конце этой недели начали проектировать установщик Calmira. Вручную её ставить быстро, но это не будет удобным, когда в день таких установок 3-4. Установщик будет написан на языке Rust и будет иметь консольный псевдографический интерфейс.

#ThisWeekInCalmira
👍5
https://t.me/calmira_gnu_linux/13

Релиз v2.0a1e4 выпущен не будет. Всё-таки слишком много изменений. Это и миграция на OpenRC, и добавление новых компонентов в состав Calmira, как разработанных внутри этого проекта, так и сторонние вещи. Поэтому выпустим сразу v2.0a2 - вторую альфа версию дистрибутива.

В данный момент работаем над двумя вещами: автоматизированная система сборки дистрибутива bs и установщик системы calminstall. Эти две вещи, как и некоторые другие, разрабатываемые командой Calmira GNU/Linux-libre, написаны на языке Rust.

Версия v2.0a2 будет собрана уже посредством bs.
По поводу языка Rust. На нем мы пишем системные компоненты дистрибутива: установщик, утилиты для настройки Calmira, систему сборки... Такое вот негласное правило.

Однако из этого правила есть и исключение - менеджер системы портов cport написан на Python. Связано с тем, что cport - один из самых старых проектов в Calmira, который был написан ещё до того, как я стал интересоваться Rust.

Вообще, в cport полно недостатков, связанных с архитектурой. Например, мне очень не нравится механизм получения настроек МСП, механизм получения сведений о программном обеспечении, алгоритм для построения дерева зависимостей... Да многое не нравится. Конечно, несколько раз cport рефакторился, чтото даже переписывалось, но проще переписать его с нуля. Так, во-первых, у него будет проще и понятнее строение (а значит и разбираться в нем новым участникам проекта будет проще, да и искать и исправлять баги тоже), а во-вторых, будет проще добавлять новые функции. Да и, на мой взгляд, повысится производительность cport. Например, он очень медленно составляет список изменений в системе портов. Список изменений там составляется очень неэффективным способом.

Ну а лучше, конечно, еще и на Rust переписать. Все-таки, по моему мнению, Python не очень хорошо подходит для системного программирования. Получаются не настолько эффективный софт, как хотелось бы. Он и работает медленнее, и потребляет больше ресурсов ПК. А в Calmira GNU/Linux-libre главное - создание эффективного ПО.
👍2🎅1
Сейчас занимаемся достаточно крупными вещами, работа над которыми будет длиться достаточно долгое время. Поэтому пока не вижу смысла в рубрике "На этой неделе", поскольку записи недели три точно будут практически одинаковыми.

Из приоритетных задач у нас создание установщика дистрибутива, добавление новых сборочных инструкций второй версии дистрибутива, стандартизация системы портов (работаем над стандартом 2.0) и разработка сайта.

В установщике осталась реализация механизма разметки диска, выбора опциональных компонентов системы и собственно установка системы. Т.е. всё самое сложное. Ну а после - формирование документации по установщику и тесты...

Со сборочными инструкциями вечно возникают какие-то проблемы. То не собирается ncurses, то какие-то проблемы в компиляции gettext. Иногда бывает, что пропустил какую-то опцию в одном пакете, а из-за этого не будет собираться какой-либо следующий. Разбираться во всём этом муторно, однако после исправлений всё будет работать как часы какое-то время.

Ну а для портов делаю продвинутую систему сборки, автоматизирующую многие вещи, которые ранее выполнялись руками. Например, генерацию списка файлов, получение размера, занимаемого пакетом на диске и пр. При желании, эту систему сборки можно использовать и для создания бинарных пакетов для Calmira.

Ну а сайт на этапе проектирования. Есть определённые наброски и идеи.
5
Из того, что осталось выполнить перед релизом Calmira GNU/Linux-libre, — создание установщика системы, обновление системы портов и выход МСП cport-v2.0. Вторая версия cport полностью переписана на языке Rust. После чего можно будет начать заниматься сборочными инструкциями системы.

Сейчас работаю над cport - он уже умеет выполнять базовые действия по работе с ПО: устанавливать, удалять и выводить информацию о нём. После нужно реализовать механизм обновления системы портов до новой версии. И собственно всё.
7🔥2
По поводу распространения программного обеспечения в GNU/Linux. С этим не просто всё плохо, с этим всё очень плохо, ИМХО. У одного дистрибутива пакеты формата *.deb, у другого - *.rpm, третий ещё что-то своё выдумает... Страдают в итоге разработчики ПО — поскольку вместо того, чтобы заниматься разработкой они занимаются либо проверкой работоспособности своих программ на том или ином дистрибутиве GNU/Linux, либо чем-то подобным. Да и у дистрибутивов появляется куча мейнтейнеров, собирающих разные пакеты, доверие к которым, откровенно говоря, есть не всегда.

И тут дело не столько в большом количестве дистрибутивов GNU/Linux (основа у них у всех одна, многие аспекты в каждом из них на самом деле +- похожи или одинаковы), сколько в том, что каждый разработчик пытается изобрести свой велосипед, который должен стать лучше, проще и удобнее. В результате и имеющимся 100500 форматам пакетов добавляется ещё один. Именно поэтому у нас до сих пор нет никакого пакетного менеджера или чего-то вроде этого, а только набор сборочных инструкций и програма для управления ПО, собранным из исходного кода.

Кроме того, я вижу большую проблему в том, что системное и пользовательское ПО находится как бы в одной куче: в /usr/bin и /usr/sbin находится как системное, так и пользовательское ПО (если ПО системное, то это не значит, что оно обязательно должно находиться в /usr/sbin или /sbin - есть же всякие оболочки и прочее ПО, которому не требуются права root). Я считаю, что нужно разделить ПО, которое необходимо для корректной работы ОС, и ПО, которое устанавливает в систему конечный пользователь.

Раньше были каталоги /bin и /sbin, в которых хранились только пользовательские программы, а также /usr/bin и /usr/sbin для всего остального ПО. Но, во-первых, разграничение ПО на этом не заканчивается - у нас же есть всякие конфиги, какие-то ещё другие файлы; ПО не ограничивается одним лишь двоичным исполняемым файлом, а во-вторых, сейчас наблюдается тенденция на замену /bin, /sbin и /lib на ссылки на соответствующие директории в /usr.

Поэтому я думаю в будущих релизах Calmira GNU/Linux-libre оставить в системе портов только ПО, предназначенное для функционирования самой системы (ядро, загрузчик, система инициализации, компоненты GNU), а для всего остального ПО использовать тот или иной формат самодостаточных пакетов: AppImage или Flatpak. Склоняюсь в сторону Flatpak, однако с установкой таких пакетов в России выходят проблемы (CISCO пусть хуй сосёт -- кто понял, тот молодец, а кто не понял, могу объяснить в комментариях). Но у Flatpak есть несколько преимуществ над AppImage -- более качественная интеграция в систему и наличие удобных инструментов для установки/удаления такого ПО. Ну и популярность (а значит, наличие бОльшего числа программ) у Flatpak выше. Flatpak выбрали разработчики GNOME и теперь, к примеру, тестовые версии их ПО распространяются в репозитории gnome-nightly. Да и вообще поддержка Flatpak в GNOME Shell достаточно неплоха.

Хочу заметить, что в Calmira 2.0 GNU/Linux-libre таких изменений не будет. Возможно, что работа над внедрением Flatpak начнётся после выхода какого-либо из промежуточных релизов из ветки 2.Х и закончится к версии Calmira 3.0.
👍4👎1👏1
Тем временем начал тестировать сборочные инструкции временного инструментария. Пока всё дело компилируется, работаю параллельно над инструкциями для core-редакции системы. Сборка происходит автоматизированно, участие человека требуется, как правило, при возникновении каких-либо ошибок в инструкциях.
🔥4🎉3
Calmira GNU/Linux(-libre) news
Тем временем начал тестировать сборочные инструкции временного инструментария. Пока всё дело компилируется, работаю параллельно над инструкциями для core-редакции системы. Сборка происходит автоматизированно, участие человека требуется, как правило, при возникновении…
Временный инструментарий собирается и функционирует адекватно. Параллельно работаю над сборочными инструкциями базовой системы, сделано около 75%. Почти всё из этого собирается без ошибок.

В релизе 2.0a2 уже будет система инициализации OpenRC. Система портов и cport пока текущие, параллельно с этим развивается новый стандарт портов и вторая версия cport, переписанная на Rust.

Точного графика выхода новых версий нет, релиз состоится тогда, когда всё будет готово. Но вообще хочется релизнуть в мае.
🔥3👍1
На этой неделе в Calmira GNU/Linux-libre №9

Период с 10 по 16 марта (прим. автора).

Эта недела вышла достаточно продуктивной. Всё ещё ведётся работа над второй версией менеджера системы портов cport, а параллельно с этим создаём сборочные инструкции для второго альфа билда Calmira 2.0 GNU/Linux-libre.

В этот билд войдут coreutils-9.1, gcc-12.2.0, glibc-2.37, linux-libre-6.1, bash-5.2. Менеджер системы портов cport останется первой версии.

На данный момент готовы сборочные инструкции для подготовки к сборке системы, для кросс компилятора и временного инструментария, частично готовы инструкции для сборки базовой системы (Calmira Core Edition), в будущем будут созданы скрипты для сборки расширенной системы (Calmira Extended Edition). Эта версия системы собирается полностью в автоматизированном режиме, участие человека требуется только в случае возникновения ошибок сборки.

Вторая версия МСП cport будет написана на языке Rust. В неё будет интегрирована автоматизированная система сборки дистрибутива.

#ThisWeekInCalmira
👍4
Точную дату начала работы над Calmira GNU/Linux(-libre) я сказать не могу. Точно - это апрель 2021 года. Тогда казалось, что всё плохое, тот же самый ковид, прошло и не вернётся.

LFS я интересовался и до этого, пробовал собрать что-то по восьмой версии руководства, но ничего особенного так и не получилось. Ну а в апреле 2021 наткнулся на русский перевод LFS 9.0 и решился таки собрать себе нормальный дистрибутив. У меня был старый ноут Asus K50IJ, на котором и планировалось этот дистриб использовать. Всякие Debian и прочие настолько задрали, что хотелось чего-то другого. Ну и плюсом спортивный интерес, как же. Хотелось же попробовать эту вашу LFS...

Поскольку опыта сборки ПО, а тем более опыта сборки своей системы у меня было крайне мало, с LFS я промучался около недели. Зато в итоге я получил полностью рабочую систему с иксами, оконным менеджером Fluxbox и каким-то доп. софтом. Так и появилась первая версия дистрибутива Calmira GNU/Linux. Архив с этой системой до сих пор лежит у меня на гуглодиске.

Поскольку точную дату начала работы над системой я не помню (да и точную дату релиза, поскольку его как такового не было), то будем считать этой датой 20 апреля 2021 года - тогда я ещё канпелял Calmira и наткнулся на ошибку сборки какого-то пакета. После чего написал в русскоязычном чате LFS об этом и как её можно исправить. А спустя несколько дней автор русского перевода LFS начал работать над руководством "Linux для себя" (lx4u.ru) - и Calmira GNU/Linux стала на какое-то время (версии 1.0 и 1.1) тестовым полигоном для этого руководства.

С тех пор система дико изменилась. Мы заменили систему инициализации SysVInit на более современный и удобный OpenRC (ожидайте в релизе 2.0), написали кучу всякой всячины для нашего дистрибутива: систему портов для распространения ПО, утилиту cport для управления ПО, работаем над calminstall и всякими прочими вещами.

Что интересно, за весь 2022 год мы не выпустили ни одного стабильного релиза системы. Окончательная версия Calmira 2.0 GNU/Linux-libre должна выйти осенью этого года.

UPD. В честь исполнения уже двух лет дистрибутиву создали комнату в Matrix: https://matrix.to/#/#calmlinux:matrix.org
Залетай
👍6🔥1