LINUX.ORG.RU

Сообщения wandrien

 

А у tint2 есть живые форки?

Позиция разработчика в прошлом году:

The final release of tint2 is 17.0.2.

The code is frozen and no more feature requests are accepted.

Неделю назад ему там коммент оставили:

Recent code changes in tint2 dependencies arise issues that are relevant.

Is there any possibilities that the support for tint2 will be resumed at least to fix such problems?

Собственно вопрос. Если ли где новый живой апстрим, готовый делать релизы. Может видел кто…

 , ,

wandrien
()

Новости из параллельного мира

HyperbolaBSD is an operating-system and not a system-distribution

2023-04-20

While we are nearing now the first states for HyperbolaBSD compiling the kernel and first work will go into the userland, we like to inform that HyperbolaBSD is a complete operating-system and not a distribution / system-distribution. We will remove at an upcoming point many more packages from extra-repository, leaving only most important applications, window-managers and more. Others being added will be left out, removed and saved within an own ports-tree for the future, such as many BSD descendant projects, for example OpenBSD, NetBSD and FreeBSD.

That maybe not the vision many have or had, but it is the point given for a further difference: HyperbolaBSD is a free and libre system, but not distributing more and more packages. So please keep an eye at the repositories to come, especially when it comes towards version 0.4.4 as we will do those steps starting there.

For more details look also at the roadmap.

Now we won’t implement more packages besides the planned for release 0.4.3. If you like, please prepare a port on your own sharing for the community. It can be later part for the ports-tree. Please always remember: HyperbolaBSD will be a new BSD descendant system project, not a system-distribution any longer.

 , ,

wandrien
()

Статистика новостей и постов в галерее за все года

Взял числа из архива новостей/постов и отобразил на графике:

https://ibb.co/gZWWy7L

Форумы как формат коммуникации умирают, и ЛОР тоже.

 , ,

wandrien
()

Аналоги pytyle

Разыскивается аналог pytyle, реализованный на Си.

pytyle — это такая программа на питоне, которая добавляет фичи тайлинга в любой стековый WM:

A lightweight X11 tool for simulating tiling in a stacking window manager.

https://github.com/BurntSushi/pytyle1

https://github.com/BurntSushi/pytyle3

Существует ли что-то схожее, но сделанное на Си?

 , ,

wandrien
()

Что происходит с апстримом openbox

Я думал, там главный (и единственный) разработчик пропал куда-то.

Но нет, коммиты в рабочих ветках есть:

Багтрекер он/она посещает и периодически какие-то баги закрывает. Только толку нет.

При этом релиз 3.6.1 был в 2015-м году и никакого 3.6.2 с багфиксами нет даже близко.

Пара примеров:

  • Древний баг https://bugzilla.icculus.org/show_bug.cgi?id=6488 был «пофикшен», но ни в один релиз этот фикс не попал. Дистрибутивы накладывают патч вручную.
  • Свежий критичный баг https://bugzilla.icculus.org/show_bug.cgi?id=6669 пофикшен в ветке work, которая хрен знает когда попадёт в релиз. Дистрибутивы накладывают патч вручную.

Хз, что делать. Рассчитывать на адекватный апстрим в такой ситуации не приходится. Форкать и вообще заниматься разработкой openbox я не хочу. Но для SDE нужен какой-то WM, и желательно, чтобы он собирался без десятка патчей.

Так что я взял сорцы, создал свою ветку от метки release-3.6.1 и накинул туда патчи из Арча. Видимо, буду плясать от этого. Суть в том, что нужен какой-то WM на опыты, чтобы тестировать на нём SDE-специфичные фичи.

 , ,

wandrien
()

no limit при завершении пользовательского сеанса

Что работает верно:

  • Если останавливается системная служба, то на неё действует таймайт 90s до прибития.
  • Если вручную останавливать пользовательский сеанс через systemctl stop, то на него действует таймайт 90s до прибития.

Что работает неверно:

  • Если выключать систему через systemctl poweroff, то при остановке пользовательского сеанса пишет ‘no limit’ вместо таймаута и висит там вечно.

Что делать?

Конфег:

$ grep -v '^#' /etc/systemd/system.conf
[Manager]
DefaultTimeoutStopSec=90s

@intelfx

 ,

wandrien
()

gtk2 сам себя не форкнет

Что ж, этот день настал. Будем делать gtk 2.26.

Минимальный план работ такой:

  • Обеспечить масштабирование заданных в настройках тулкита размеров иконок в соответствии с DPI.
  • Обеспечить масштабирование заданных темой пиксельных размеров в соответствии с DPI.
  • Предоставить для приложения API для масштабирования размеров из условных пикселей (под 96 DPI) в реальные в соответствии с DPI.
  • Исправить мелкие косяки в теме Redmond, которые остались с тех пор, как отрисовка темы была переведена на cairo.
  • Дополнить дефолтный пакет тем стилями для gtk3, максимально приближенно имитирующими классические темы.
  • Бэкпортировать из gtk3 некоторые улучшения в диалогах открытия/сохранения файлов.

Приглашаются все желающие. Пишите ваши соображения.

Разные частичные наработки у меня есть, но я их пока нигде не публиковал. Причешу немного и выложу на гитхаб.

P.S. @hobbit, верни тэг gtk2 в БД сайта!!!

 , , ,

wandrien
()

Чиним тормоза и зависоны GRUB

По результатам вчерашнего изучения ситуации с зависанием os-prober-а, о чем писал в теме Немейнстримные RPM-based дистрибутивы: зачем и почему (комментарий)

По итогу причиной оказалась запредельная крутизна O()-метрики алгоритма из-за некачественного кода.

Проблем оказалось две. Первая затрагивает логику работы утилиты grub-mount. А вторая общую логику работы файловой подсистемы GRUB. Вот они:

  1. https://github.com/wandrien/grub/issues/1

  2. https://github.com/wandrien/grub/issues/2

Вот ветка с фиксом для 1-й проблемы: https://github.com/wandrien/grub/commits/grub-mount-fixes

2-й еще не занимался.

Я пока не стал писать в апстрим. Загрузил код на гитхаб и там же разместил тексты багрепортов. Как сформирую цельный пачсет, тогда напишу в апстрим на Саванну.

Желающие помочь с кодом/пул-реквестами/тестированием/исправлением моего английского/умными идеями - are welcome.

Да, по второму багу. Знаете, что GRUB делает на каждом вызове функции grub_file_open()? Каждый раз заново детектирует файловую систему на разделе.

Я пока не знаю, разумного объяснения, почему так сделано. Ну то есть… если это сделано специально?

Пока что считаю, что это просто было сделано по принципу «работает и ладно», и поэтому исправить проблему труда не составит. Дальше посмотрим…

 ,

wandrien
()

А gnu и fsf вообще живое?

Я сейчас заглянул в список важных проектов на сайте gnu. А там знаете что? Реализация поддержки грамматического рода существительных для словаря. Не шучу:

Modify aspell or hunspell to handle a gender dictionary. The gender dictionary for a given language would record the gender of each known word, if it has a gender.

The purpose of this is to enhance the command to check a single word. It should report the word’s gender, if the dictionary states its gender. Then we could extend the command M-$ in GNU Emacs to report the word’s gender. Other editors could be extended likewise.

Most of us know of languages where the genders are “male”, “female” or perhaps “neuter”. However, some languages classify nouns in other ways. In linguistic terms, any classification of nouns into categories is called “gender”. This feature should let the gender dictionary specify any set of genders and classify nouns into them. It should handle whatever set of genders the current dictionary defines.

Some languages use suffixes on verb forms to classify the subject by gender. It would be useful if the extension can analyze a verb form and say which gender it applies to its subject, object, or other related nominal.

Всё, это полный список. Только один пункт.

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

 ,

wandrien
()

Нескучный экран загрузки как сама бесполезная программа

Скажите, а я один не понимаю смысл существования этого графического экрана загрузки с прогрессбаром? Оно появилось и существует чтобы что? Даже создание очередного текстового редактора с нуля выглядит менее бессмысленно, чем эта программа.

  • Текстовый лог загрузки показывает наглядно, что происходит. Если что-то пойдёт не так, то сразу будет видно. А с plymouth бывали ситуации, когда он в случае проблемы просто не отключается по esc, и лог не видно никак.
  • Текстовый лог это на самом деле прикольно. Машина работает, видно, как она функционирует. Это фишка. Она интересная.
  • Даже если у вас машина грузится 2 секунды, то 2 страницы текста, которые промелькнут за эти 2 секунды, как бы говорят: «Ого, смотри как быстро. Это 2023-й год, ёлки-моталки!» А если ты две секунды смотришь на статичный экран, то успеваешь подумать о том, что комп всё еще грузится не слишком быстро.
  • Ну и у systemd реально красивый загрузочный лог. Уж точно симпатичнее абстрактных картинок.

 ,

wandrien
()

Подсчёт размеров каталогов по заданному списку файлов

Дан список файловых путей и их размеры:

dir1/subdir1/filename1 100
dir1/subdir1/filename2 1000
dir1/subdir2/filename1 3000
dir2/subdir1/filename1 10
dir2/subdir1/filename2 10
dir2/subdir1/filename3 10

Нужно сгенерировать отчёт, дающий статистику по каждому каталогу - какой у него размер и сколько в нём файлов (включая подкаталоги). Как-то так:

. 4130 6
dir1/ 4100 3
dir1/subdir1/ 1100 2
dir1/subdir2/ 3000 1
dir2/ 30 3
dir2/subdir1/ 30 3

Тут, собственно, два пути. Или написать скрипт на awk. Или взять исходники du на Си и добавить в них этот режим. Вы бы какой вариант выбрали?

А может уже есть готовый скрипт для этого, и мне не придётся возиться с awk-ом?

 ,

wandrien
()

Исправить старый пост в архиве форума

@hobbit Можно поменять оба линка вот тут в связи со сменой домена у сайта?

Новый линк - https://wandrien.github.io/articles/tty/

 

wandrien
()

Немейнстримные RPM-based дистрибутивы: зачем и почему

Существует семейство RPM-based дистрибутивов, которые позиционируют себя как решения для десктопа. Как минимум, вспомнились:

  • PCLinuxOS
  • OpenMandriva Lx
  • Mageia
  • ROSA

Может еще какие есть.

Хотелось бы услышать мнение тех, кто пользовался этими продуктами. Что они собой представляют, зачем нужны, плюсы/минусы, реальный опыт использования.

Сам я из всего этого десктопного зоопарка пользовался только Mandrake 10 (неплохая была ОС для своего времени; да и трава раньше была зеленее) и SUSE 9.

Кстати про современное состояние openSUSE тот же вопрос. Это вроде серьёзный проект с историей, но сам я давно с ним дела не имел, и хотелось бы услышать, что там и как в наше время.

Перемещено hobbit из talks

 , , , ,

wandrien
()

Прибитые к ./configure --prefix=/usr программы...

Я тут компилируя gcc, случайно обнаружил, что он прекрасно себя чувствует и работает, будучи размещен по абсолютно любому пути. Вовсе не обязательно, чтобы это был тут путь, который указан в ./configure --prefix=/prefix. Он просто берёт относительный путь от своего бинарника и находит там свои файлы.

При чем это не какое-то нововведение. Функция make_relative_prefix(), которой он пользуется, входит в состав древней как GNU библиотеки libiberty.

То есть собираем gcc, например, с ./configure --prefix=/fake-usr, а потом копируем установочный каталог в любое место хомяка и без проблем пользуемся. Даже не нужно вручную ему пути подсовывать через ключ -B или переменные окружения.

Собственно, вопрос…

Почему куча остальных программ написана через задницу?

Почему использование make_relative_prefix() или её аналога не входит в best practices и не описывает в туториалах по сборке программ под линукс?

Почему всё типичное, что может прочитать an average developer о сборке ПО для линукс - это то, как захардкодить фиксированный prefix через аутотулзы, cmake и т.п.?

 , ,

wandrien
()

systemd и половинчатые решения

Слава Поттерингу, в Linux системные учётные записи создаются декларативно.

Но вот почему… почему нельзя было уже исправить проблему пространства имён, чтобы системные учётки не конфликтовали с пользовательскими? Вон Эппл же смогла.

При чем проблема обсуждалась в Дебиане аж 2008-м году. Но в Дебиане могут только обсуждать. Видимо, пока Поттеринг не доберётся до этого, так и будет бардак.

 ,

wandrien
()

Вопросы по KDE

Поставил Manjaro с KDE в VBox, чтобы посмотреть, что там в современных кедах. Тема для всплывающих по ходу дела вопросов.

  1. Когда на элемент таскбара наводишь мышь, то вместо превью окна там видна только большая иконка приложения. Это так и задумано или что-то с настройками? Как сделать превью? По Alt-Tab превью видны.

  2. В таскбаре есть кнопка с надписью «Временно освобождает рабочий стол, перемещая открытые окна в углы экрана». У меня она ничего никуда не перемещает, просто скрывает окна. Вопрос снят, это ошибка перевода, похоже. На англ. текст по смыслу иной.

  3. Есть возможность сделать, чтобы по Alt+Tab листалка показывалась мгновенно, а не с задержкой? Я понимаю, что это by design скорее всего, но это выглядит неопрятно, будто система лагает.

 , ,

wandrien
()

Вот я и докатился - 2 (c)

По мотивам: Вот я и докатился

Арчик надо было накатывать лет 15 назад. Как-то время-то упущено теперь. А сейчас самое то — накатывать FreeBSD уже.

В связи с тем, что в GNUтой экосистеме уже практически окончательно закончились программисты.

 , ,

wandrien
()

Баг колоризатора для ```

На следующем примере без указания параметра c форматирование теста сохраняется, а с указанием — теряется.

  out_file = (filename_option == 0 && num_operands <= 1
              ? - (directories == RECURSE_DIRECTORIES)
              : 0 <= filename_option);
  out_file = (filename_option == 0 && num_operands <= 1
              ? - (directories == RECURSE_DIRECTORIES)
              : 0 <= filename_option);

 , ,

wandrien
()

Краткая история о том, как не надо писать (и улучшать) код

По мотивам разговора в Почему программы на с++ тормозят :) решил оформить это отдельной темой.

В исходниках GNU grep я наткнулся на такое:

/* Whether to output filenames.  1 means yes, 0 means no, and -1 means
   'grep -r PATTERN FILE' was used and it is not known yet whether
   FILE is a directory (which means yes) or not (which means no).  */
static int out_file;
  /* Which command-line options have been specified for filename output.
     -1 for -h, 1 for -H, 0 for neither.  */
  int filename_option = 0;
  /* Don't output file names if invoked as 'grep -r PATTERN NONDIRECTORY'.  */
  if (out_file < 0)
    out_file = !!S_ISDIR (st.st_mode);

Тут явно напрашивается enum вместо магических констант. О чем я сразу подумал. А дальше в коде я наткнулся еще на такой однострочник, с которым без поллитры не разобраться:

  out_file = (filename_option == 0 && num_operands <= 1
              ? - (directories == RECURSE_DIRECTORIES)
              : 0 <= filename_option);

В общем, я подумал, что эта лапша наверное родом откуда-то из конца 80-х - начала 90-х, когда код писали в «хакерских традициях». Но нет. Всё это безобразие было введено в 2019-м году в 3-х коммитах под следующими заголовками:

Автор сначала ввёл enum-ы как разумный разработчик. А потом выкинул их, заменив на числа и магические операции сравнения а ля больше/меньше/равно нулю.

Не делайте так. Не хакерствуйте над битами как для конкурса IOCCC.

 , ,

wandrien
()

Очумелые ручки, Bedrock, Debian и все-все-все

Всем привет, народ, и особенно - тем, кого помню. Давно не заглядывал.

Валялась у меня тут Live-флешка с Арчем, завернутым в Bedrock. Bedrock - это такой докер наоборот. Прикольная штука, позволяет миксовать софт из разных дистрибутивов в произвольных сочетаниях. (А вот еще какая-то обзорная статья на хабре, не моя.) Валялась без дела год, а сегодня попалась на глаза и решил запустить её.

Пока обновлялся Арч, решил поставить туда же Дебиан. Ну раз есть Бедрок, надо его использовать, а ставить на флешку еще один дистр с роллингом смысла нет. А если с фиксированными релизами - ну тогда Дебиан, очевидно же. И лучше сразу 12-й, потому что к тому времени, как я в следующий раз про эту флешку вспомню, он как раз успеет релизнуться. Апдейтнул Bedrock, развернул Debian в новой страте, чрутнулся туда, немножко настроил, поставил рандомного софта поиграться. Ребутнулся. Загрузился в дебиановский юзерлэнд на арчевском ядре. Ну прикольно. Всё работает, проблем нигде не вылезло.

Потыкал в разные DE. Внезапно прямо хорошо зашла мне XFCE. Лаконичная. Просто симпатичная по дефолту, без выкрутасов. Необходимый минимум настроек и фич есть, и ничем лишним не перегружена. Захотелось на ней и остаться.

И пока тестировал разные конфигурации, включал-отключал страты, созрела идея:

Делаем brl hide Arch, релогаемся - вся куча прикладного софта, поставленного под Арчем, попадает из меню приложений и из PATH. Остаётся чистый Debian с XFCE и минимумом софта. Делаем brl show Arch, релогаемся - в меню снова куча приложений. Хм… Да это же мысль. Я же этого джвадцать лет ждал.

  • Стабильный Дебиан можно использовать в качестве основной ОС, в качестве платформы, на которой работает графический сеанс, DE и основные средства управления компом. Там будут чёткие неизменные версии основных компонентов.
  • В Арч ставим приложения, которые хочется иметь максимально свежими без оглядки на релиз-цикл дистрибутива. В моём случае это, например, Firefox, Libreoffice, gimp и т.п. Плюс удобно ставить софт из AUR.
  • В дополнительные страты по необходимости ставим другие версии дебиана или убунты или чего угодно, где есть нужный софт. Например, мне нужен 5-й kicad, потому что на 6-й лень мигрировать, а 5-й и так меня устраивает. Вот в 11-м Дебиане как раз нужная версия, оттуда и ставим.

И получается функциональный аналог этих ихних рантайм-сред от флатпака, но намного более крутой.

Потому что:

  • Флатхаб не хранит старые версии, это не входит в его задачи. А в архиве Дебиана любые версии хранятся, как показывает практика, вечно. И в любой момент нужную версию можно поставить.
  • Абсолютно любой диструбутив - это уже готовый рантайм для приложений без необходимости изобретать квадратное колесо.
  • Можно свободно сочетать не только разные рантаймы и версии приложений, но и низкоуровневые части системы. Можно легко и удобно использовать ядра от любых диструбутивов, можно менять базовую систему отдельно от приложений и т.п.
  • Можно мигрировать между дистрибутивами настолько, насколько самому пользователю удобно. Вот выйдет когда-то следующий 13-й Дебиан, и я могу сразу использовать отдельные приложения от него, при этом сидя по больше части на 12-м. Не бэкпортировать, а просто юзать как есть. А потом захочу перейти на 13-й - просто доустановлю туда нужные пакеты, выберу другой пункт меню при загрузке, и вот я уже в 13-м. Без всяких дист-апгрейдов и без созданий новых разделов.
  • Да что там, можно хоть сейчас ставить из Sid-а пакеты в отдельной страте, и при этом в основной системе гарантированно ничего не сломается.
  • В изолированных стратах проще организовать сборочное окружение для пакетов, нежели плясать вокруг докера. Как видимость страты другими стратами снаружи, так и видимость изнутри страты наружу - легко управляются командой brl. Также легко для всех страт настраивается глобальная часть пространства файловых имён.

Тут можно еще вспомнить виндовую технологию SxS для библиотек (Side-by-Size сборки), но лучше даже не вспоминать, потому что в Бедроке концепция и возможности на голову выше.

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

Короче, советую попробовать, товарищи энтузиасты. Я чо-т протащился с этого. Буду дальше экспериментировать в эту сторону.

З.Ы. В очередной раз обновляя Арч, который не обновлялся то ли полгода, то ли год, подумал о том, что никогда ничего «само» не разваливается, если только специально не толкать руки себе в задницу. Ни под Арчем, ни под Дебианом, ни под другими адекватными дистрибутивами. ЧЯДНТ?

З.З.Ы. Модератор, создай тэг bedrock, таки да.

 , , ,

wandrien
()

RSS подписка на новые темы