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
Сформировали корректирующий билд 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
Опять выходные — и опять сборка Calmira GNU/Linux-libre.

Сегодня закончил создание сборочных инструкций для Core-редакции дистрибутива и перешёл к тестированию сборки используя эти инструкции. Количество пакетов в Core редакции несколько выросло по сравнению с прошлыми версиями Calmira GNU/Linux - добавились cmake, llvm, rustc и куча всякой всячины. В этом релизе мы наконец перешли на использование системы инициализации OpenRC. В том случае, если система с этими инструкциями соберётся, то будет возможность всё это дело протестировать.

Поскольку в минимальную редакцию было добавлено несколько довольно больших пакетов, то размер этой редакции несколько вырастет. На сколько - не могу сказать. Раньше система весила около 1 Гб, а сколько будет весить потом - ХЗ.

Пока не добавлял систему портов и cport. Всё это будет добавлено в будущих версиях. Тогда будет задействована старая версия cport (cport-v1.0), написанная на Python — вторая версия cport, написанная на Rust, пока не готова. Будет ли готова вообще - не знаю.

А пока вы можете ознакомиться со списком пакетов Core-редакции: https://gitlab.com/calmiralinux/cabs/build-scripts/-/blob/master/packages.toml
🔥6
В Calmira 2.0a2 GNU/Linux будет поставляться два вида ядер: обычное ядро Linux и Linux-libre от проекта GNU, очищенное от несвободных компонентов.

Поскольку число ПК/ноутбуков, на которых мы собираем и тестируем дистрибутив, ограничено, мы просим вас о помощи: пришлите в комментарии к данному сообщению вывод команды:

inxi -ACEGMN

(ознакомиться с исходным кодом программы inxi можно здесь)

Эта команда выводит сведения о железе компьютера. В вывод поступает следующая инф-ция:

1. Информация о ПК (имя, модуль, версия прошивки).
2. Информация о ЦП (модель, разрядность, частота).
3. Графика (видеокарты, драйвера на видеокарты, разрешение экрана).
4. Аудио (звуковая карта, драйверы, использование ALSA, PulseAudio, PipeWire).
5. Сеть (сетевые карты, драйверы).
6. Bluetooth (оборудование, драйверы).

Будет использована следующая информация:

1. Используемые ядром драйверы оборудования.
2. Какие драйверы нужно включать в первую очередь.
3. Следует ли оптимизировать работу дистрибутива на мобильных устройствах (ноутбуках, нетбуках).

Информация будет использована для включения драйверов нужных устройств в ядрах Linux и Linux-libre.

Если вы не хотите делиться с нами какими-то сведениями, то можете убрать их из вывода inxi.
👏6
Сборочные инструкции для базовой редакции системы всё. Мы их сделали и сейчас тестируем.

С 25 апреля пилим сборочные скрипты для расширенной редакции системы. Сейчас готовы скрипты для сборки Xorg и необходимых ему драйверов. В будущем будут написаны инструкции для сборки GTK 3, GTK 4, Xfce и части другого ПО.
🔥7👏1
Обновления сборочных инструкций

core.rustc 1.69 -> 1.70
core.cmake 3.25.2 -> 3.26.4
core.llvm 15.0.7 -> 16.0.4

На территории России наблюдаются проблемы в загрузке пакетов acl-2.3.1, attr-2.5.1, libpipeline-1.5.7 и man-db-2.11.2, для них (и, возможно, для будущих других пакетов) был создан отдельный репозиторий с архивами этих пакетов.
🔥3👍2
Тем временем собираем вторую альфа версию дистрибутива. Будет ли оно работоспособно или нет - большой вопрос. По крайней мере, в первой альфе у нас были какие-то проблемы с OpenRC, которые к Alpha 2 мы не исправили, ибо были другие более важные ошибки. Предполагаю, что придётся релизить третью альфу с кучей исправлений, в основном связанных с системой инициализации.

Сейчас мы тестируем только корректность сборочных инструкций. Ну и в этом билде будет поставляться две версии ядра: Linux-libre и обычное ядро Linux.

Вполне возможно, что эта версия Calmira GNU/Linux-libre выйдет в среду. Релиз обещает быть жирным, ибо в него включены пакеты LLVM 16, Rust 1.70, dhcp, wpa_supplicant и другие.
🔥4👍2
Calmira GNU/Linux(-libre) news
Тем временем собираем вторую альфа версию дистрибутива. Будет ли оно работоспособно или нет - большой вопрос. По крайней мере, в первой альфе у нас были какие-то проблемы с OpenRC, которые к Alpha 2 мы не исправили, ибо были другие более важные ошибки. Предполагаю…
Система портов и cport в данном билде стоят ради галочки. Сейчас мы переделываем как систему портов, так и cport для того, чтобы упростить их сопровождение и обслуживание. С тем, что есть сейчас, работать +- просто, но вот сопровождать это всё дело нам (поддерживать в актуальном состоянии, добавлять новые порты) - это очень сложно. Поэтому постепенно упрощаем и автоматизируем все эти процессы.

Сейчас проверил — билд, как и ожидалось, нормально не загружается, хотя в chroot можно зайти и работать. Добавили Rust, LLVM, SQLite3 и несколько наших утилит для настройки консоли (vcsetup и vcload). Дистрибутив постепенно "ржавеет" - наши мелкие утилиты и система сборки уже написаны на Rust, скоро к ним присоединится cport.

Текущая версия собиралась только для проверки двух вещей:

1. Работоспособность системы сборки.
2. Корректность сборочных инструкций, которые будут использоваться как в системе портов, так и для сборки последующих версий системы.

Завтра выложу как iso-образ системы, так и squashfs-снимок. (squahfs-снимок в ISO-образе, а ISO-образ по ссылке ниже, а ссылка ниже находится в следующем сообщении)
👍5
Forwarded from 
https://drive.google.com/file/d/1yst9sss_MNGAIH7SSqXPPB-ftlWaU93l/view?usp=sharing

Система сборки работает, инструкции в принципе все проходят. Образ нерабочий, по крайней мере с исошника не грузится. Хотя если распаковать и работать в чруте - признаки жизни подаёт
🔥3
Выходим из отпусков и с новыми силами продолжаем работу над приоритетными на данный момент задачами:

1. Система портов - постепенно переходим на вторую версию стандарта системы портов. ports-v2.0 приносит множество всевозможных изменений и улучшений в систему портов, связанных с добавлением новых функций и возможностей и повышение безопасности портов в целом.
2. МСП cport - весной этого года начал работу над прототипом cport-rs - версия cport, написанная на языке Rust. Летом стали работать над второй версией cport, которая полностью переписана на языке Rust. Теперь cport является набором программ и библиотек для управления ПО в Calmira GNU/Linux-libre.
3. Система сборки - новая система сборки дистрибутива входит в состав МСП cport. Есть несколько идей, которые вскоре будут реализованы. Например, в новой версии системы сборки планируется улучшить логирование и уведомления о прогрессе сборки ПО, а также добавить возможность восстановления сборки с места предыдущего завершения. Кроме того, не нравится, что система сборки, несмотря на то, что она очень многое автоматизирует, всё равно требует постоянного участия человека в своей работе.
🔥6
Calmira GNU/Linux(-libre) news
Выходим из отпусков и с новыми силами продолжаем работу над приоритетными на данный момент задачами: 1. Система портов - постепенно переходим на вторую версию стандарта системы портов. ports-v2.0 приносит множество всевозможных изменений и улучшений в систему…
Теперь cport при просмотре инф-ции о ПО выводит куда меньше ненужной информации. Пользователю выводится только то, что ему действительно необходимо.

Для проверки того, какие зависимости присутствуют, а какие отсутствуют (раньше статус зависимостей выводился зелёным, красным и белым цветом), используется опциональный ключ --check-deps/-c.

(фото 1 - было, фото 2 - стало, фото 3 - проверка наличия зависимостей в новом cport)
🔥7