LINUX.ORG.RU

Сообщения shell-script

 

Новый модератор CrX

Приветствуем нового модератора CrX!

От лица модераторского состава: «Добро пожаловать в стройные ряды».

От лица остальных, как обычно ЦВИМ(или КВИМ, поправь, если ошибаюсь)!

 ,

shell-script
()

QEMU/KVM macvtap и mac-адрес

Поднял дома на подкроватном сервере-одноплатнике kvm. Не хочется менять настройки сети, доступ с самого одноплатника на виртуальные машины не нужен, поэтому настроил сеть на госте через macvtap. А далее что-то странное. Другие компы в сети, видят mac-адрес самой сетевой карты одноплатника, а не виртуального интерфейса. Соответственно, если попытаться стукнуться на виртуалку по ssh, оно идёт на хост, а не на виртуальную машину. Если потом с помощью ip neigh replace на десктопе или ноуте поставить айпишнику виртуальной машины правильный mac-адрес, всё работает как задумано.

Кто-нибудь встречал подобное поведение? Много лет использую kvm с macvtap и такое поведение вижу впервые.

Если это важно, на хосте-одноплатнике gentoo. На других машинах в локалке или gentoo, или debian.

В качестве роутера всей сети noname-китайский роутер от провайдера. Я сначала решил, что он виноват, так как проблему заметил, подключаясь с ноутбука по wi-fi. Но потом попробовал с десктопа, подключённого как и одноплатник по проводу, и проблема повторилась. Такое впечатление, что хост-система на одноплатнике на arp who-has отдаёт неверный ответ.

 , ,

shell-script
()

Wayland KDE

В очередной раз решил потыкать палочкой wayland в KDE. В общем, эксперимент в очередной раз считаю неудачным. В целом, работает, но есть несколько очень неприятных багов.

  • Очень долго просыпается после засыпания. После того, как проснётся - не работает тачпад, если браузер был включён, его надо рестартить, картинка не обновляется.
  • После ребута, при попытке запуска сессии display-manager падает. Ручной рестарт помогает, но понятно, что это не дело.
  • Может быть чисто KDE-баг, но на панелях пропала часть значков приложений. В иксах они вернулись.
  • Блокировка экрана через раз завешивает ноут намертво. Не отвечает на кнопки, не отвечает по сети.

Тест длился около недели. Ни в одном из багов не разбирался, логи не читал, фиксить не пытался сверх ковыряния в настройках мышей. Переключился назад в иксы. Никакой заметной на глаз плавности или повышенной производительности по сравнению с иксами в Wayland не замечено.

Ноут древний и слабый, в качестве видео - встройка от AMD. Дрова дефолтные. Calculate Linux.

С моей точки зрения обычному пользователю пока рано в wayland.

 , , ,

shell-script
()

Неверное значение equery size ?

Привет.

В свободное время потихоньку пилю свои велосипеды для gentoo. Дошёл черёд equery, а в частности equery size.

[cppmm@damned mportage]$ equery s bash -b
 * app-shells/bash-5.1_p16-r2
         Total files : 45
         Total size  : 2889615

Проверяем. Для проверки я смотрю в CONTENTS, достаю оттуда только то, что является по типу obj и суммирую:

foreach my $line (<$contents_handle>) {
  my @line = split / /, $line;
  $files++;
  if ($line[0] eq 'obj') {
    my $file_size = (stat $line[1])[7];
    $size = $size + $file_size if defined($file_size);
  }
}
В итоге получаю: 2602878 Ну, предположим, perl врёт. Посчитаем bash'ем(однострочник одноразовый на скорую руку).
for size in $(ls -l $(grep -E '^obj' CONTENTS | awk '{print $2}') | awk '{print $5}') ; do let "FSIZE = FSIZE + $size" ; echo $FSIZE ; done ; unset FSIZE
Получается, perl всё правильно посчитал: 2602878

Иду смотреть в код gentoolkit

        seen = set()
        size = n_files = n_uncounted = 0
        for path in self.parsed_contents(prefix_root=True):
            try:
                st = os.lstat(_unicode_encode(path, encoding=_encodings["fs"]))
            except OSError:
                continue

            # Remove hardlinks by checking for duplicate inodes. Bug #301026.
            file_inode = st.st_ino
            if file_inode in seen:
                continue
            seen.add(file_inode)

            try:
                size += st.st_size
                n_files += 1
            except OSError:
                n_uncounted += 1

        return (size, n_files, n_uncounted)

За исключением дополнительной проверки на хардлинки(в bash'е, взятом для примера, хардлинков нет), всё выглядит так же, как у меня. Но почему тогда итоговая сумма различается? Где я просчитался и откуда equery берёт ещё почти три сотни килобайт?

Содержание CONTENTS:

dir /usr
dir /usr/share
dir /usr/share/info
sym /usr/share/info/bashref.info.bz2 -> bash.info.bz2 1673668093
obj /usr/share/info/bash.info.bz2 393a14a5ef4f7a9fd1f972fe722e1b4c 1673668089
dir /usr/share/man
dir /usr/share/man/man1
obj /usr/share/man/man1/rbash.1.bz2 7d8fa9646b44685ce5b435251a755669 1673668091
obj /usr/share/man/man1/bash.1.bz2 89a2fe46e383d7f6bf247d8f8dfeb2d0 1673668089
obj /usr/share/man/man1/bashbug.1.bz2 9d12dc1958d8e640264182b801e24316 1673668089
obj /usr/share/man/man1/bash_builtins.1.bz2 e84268f4670be0fa8ed185a43ca1d233 1673668091
dir /usr/share/doc
dir /usr/share/doc/bash-5.1_p16-r2
obj /usr/share/doc/bash-5.1_p16-r2/CHANGES.bz2 5c43139aae5703fe86c394c3e45b66ea 1673668090
obj /usr/share/doc/bash-5.1_p16-r2/POSIX.bz2 e641b4188c5824c1441b97b594da69ac 1673668089
obj /usr/share/doc/bash-5.1_p16-r2/NEWS.bz2 6c47111c691f28fdf8822ae2c16b7536 1673668090
obj /usr/share/doc/bash-5.1_p16-r2/RBASH.bz2 ed3e9e7fe6ce0e83d05cfb994e0cecdb 1673668089
obj /usr/share/doc/bash-5.1_p16-r2/INTRO.bz2 0adb1e98d3ad2a3a012d696ea17e5547 1673668089
obj /usr/share/doc/bash-5.1_p16-r2/COMPAT.bz2 7029427047217c824828bf2fa4c3816f 1673668089
obj /usr/share/doc/bash-5.1_p16-r2/AUTHORS.bz2 65f88febe33195919919139655121a7f 1673668089
obj /usr/share/doc/bash-5.1_p16-r2/FAQ.bz2 c54d1bdf18849c74a94d5dcebce4e623 1673668089
obj /usr/share/doc/bash-5.1_p16-r2/README.bz2 a9ebdee593521b64c96fad5bb7b3a3c3 1673668089
dir /usr/share/doc/bash-5.1_p16-r2/html
obj /usr/share/doc/bash-5.1_p16-r2/html/bashref.html b0bf8f6881f88d1fd2aff973ae1975af 1673668089
obj /usr/share/doc/bash-5.1_p16-r2/html/bash.html c9336f41ad159aa7d606a1999d75e020 1673668089
obj /usr/share/doc/bash-5.1_p16-r2/ChangeLog.bz2 83aeece17d29263f5ff312228c1e71ca 1673668091
dir /usr/share/locale
dir /usr/share/locale/ru
dir /usr/share/locale/ru/LC_MESSAGES
obj /usr/share/locale/ru/LC_MESSAGES/bash.mo 39c19d7b6487b5108893f42bf2a74638 1673668089
dir /usr/bin
obj /usr/bin/bashbug 53b7bde997005b1c10aa3d182111b397 1673668089
dir /etc
dir /etc/bash
obj /etc/bash/bash_logout 229ccc2980a94877f2e87f957e9da7bf 1673668090
obj /etc/bash/bashrc 4ba9eb2e8e8e5a503477a6445a11200c 1673668091
dir /etc/bash/bashrc.d
obj /etc/bash/bashrc.d/.keep_app-shells_bash-0 d41d8cd98f00b204e9800998ecf8427e 1673668090
dir /etc/skel
obj /etc/skel/.bash_logout 7d8a8ef90c1818a0cd66808ac2740638 1673668091
obj /etc/skel/.bash_profile d3322040528c46743ea8e4b0b9a186bc 1673668091
obj /etc/skel/.bashrc d210b9cd7fc07420736480f2062d7d7f 1673668091
dir /bin
sym /bin/rbash -> bash 1673668090
obj /bin/bash 7e6a211d8a6e4a14b8c8ffbc49a38fcd 1673668093

 , , ,

shell-script
()

Программирование простейшей графики

Всем привет.

Возникла одна идея для реализации которой нужно добавить немного 2D-графики. Графика нужна простейшая - пиксели, линии, графики. Нужно уметь реагировать на нажатия клавиш, минимальная поддержка каких-нибудь простых шрифтов.

Лет двадцать назад, будучи школьником, я что-то такое делал на Pascal, стандартного модуля Graph хватало с головой. А что есть из такого простого сейчас?

Лучше всего я знаю Perl, но тут с этим всё не просто. Можно рисовать отличные графики, генерировать или обрабатывать картинки, но вот для рисования «в реалтайме» и создания движущихся картинок сходу я ничего не нашёл. Есть Tk, в котором можно что-то похожее делать в окне, да и всё вроде бы. Как запасной вариант оставлю, но хотелось бы что-нибудь по новее.

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

На golang в принципе сходу не понял, есть ли что-нибудь подобное. Возможно плохо искал - я тут в модулях не очень хорошо ориентируюсь.

На Си или плюсах не искал, так как наверняка там всё это есть, но мне понадобится относительно много времени, чтобы найти и вникнуть.

Собственно, видимо, гуглить я разучился. Подскажите, что сейчас есть для максимально простой графики? Игровые движки я не рассматриваю - это уже как мне кажется сильный overhead. Мне нужно по сути нарисовать оси координат, разместить и двигать там простейшие фигурки. Суть в расчётах, а не в красивой графике. Реализация какой бы то ни было физики не нужна. Т.е. нужна минимальная визуализация. В целом, думаю, ЯП не важен, но желательно что-нибудь живое и не особо низкоуровневое. В идеале, чтобы не было слишком жирным. Платформа - только GNU/Linux. Можно в консоли(framebuffer?), можно с использованием каких-либо тулкитов. Как мне это видится было бы круто что-то типа подобного псевдокода:

my $pixel1 = {
 x = 10;
 y = 20;
 color = green;
}

put_pixel($pixel1);
if ($keycode = 'Up') {
  my $x = $x + 1;
  $pixel1->{x = $x};
  clrscr();
  put_pixel($pixel1);
}

if ($keycode = 'Left') {
  my $y = $y - 1;
  $pixel1->{y = $y};
  $pixel1->{color = 'red'};
  clrscr();
  put_pixel($pixel1);
}

 , ,

shell-script
()

Ломается десктоп после запуска игр.

Всем привет.

Решил тут поиграть немного, запустил War Thunder, пару часиков покатался, всё отлично. Но после выхода из игры случилось странное. Всё начало моргать, окна будто сами переключаются, а шрифты превратились в древние заклинания по вызову демонов из преисподней. Как-то так. Рестарт сессии всё вылечил, после чего я попробовал другие игры. Half-Life 2, Crimsonland, Euro Truck Simulator 2. После любой из игр происходит то же самое, хотя в самих играх всё нормально - ни глюков, ни тормозов. Собственно вопрос, кто виноват и что делать? В логах иксов никаких ошибок не вижу. Раньше такого не было, но я давно не игрался, поэтому не знаю, после какой из обнов такое произошло.

└─> uname -a
Linux damned 5.15.63-gentoo-dist #1 SMP Thu Aug 25 12:40:44 -00 2022 x86_64 AMD Athlon(tm) X4 840 Quad Core Processor AuthenticAMD GNU/Linux
└─> lspci -vs 01:00.0
01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] (rev a2) (prog-if 00 [VGA controller])
        Subsystem: Palit Microsystems Inc. GM107 [GeForce GTX 750 Ti]
        Flags: bus master, fast devsel, latency 0, IRQ 56, IOMMU group 1
        Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
        Memory at e0000000 (64-bit, prefetchable) [size=256M]
        Memory at f0000000 (64-bit, prefetchable) [size=32M]
        I/O ports at e000 [size=128]
        Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
        Capabilities: [60] Power Management version 3
        Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [78] Express Legacy Endpoint, MSI 00
        Capabilities: [100] Virtual Channel
        Capabilities: [258] L1 PM Substates
        Capabilities: [128] Power Budgeting <?>
        Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
        Kernel driver in use: nvidia
        Kernel modules: nouveau, nvidia_drm, nvidia
└─> eix nvidia-drivers
[I] x11-drivers/nvidia-drivers
     Доступные версии:      390.154(0/390) 470.141.03(0/470) 510.85.02(0/510) [M]~515.49.15(0/vulkan) 515.65.01(0/515) {+X dist-kernel (+)driver kernel-open persistenced +static-libs +tools wayland ABI_X86="32 64"}
     Установленные версии:  515.65.01(0/515)(20:37:30 04.09.2022)(X driver -dist-kernel -kernel-open -persistenced -static-libs -tools -wayland ABI_X86="32 64")
     Домашняя страница:     https://www.nvidia.com/download/index.aspx
     Описание:              NVIDIA Accelerated Graphics Driver
└─> eix plasma-desktop
[I] kde-plasma/plasma-desktop
     Доступные версии:      (5) 5.24.6-r2^t ~5.25.5^t
       {debug emoji +handbook ibus +kaccounts scim +semantic-desktop telemetry test}
     Установленные версии:  5.24.6-r2(5)^t(22:04:38 14.08.2022)(-debug -emoji -handbook -ibus -kaccounts -scim -semantic-desktop -telemetry -test)
     Домашняя страница:     https://kde.org/plasma-desktop
     Описание:              KDE Plasma desktop
└─> eix xorg-server
[I] x11-base/xorg-server
     Доступные версии:      [M]1.20.14-r1(0/1.20.14)^t 21.1.3-r2(0/21.1.3)^t 21.1.3-r3(0/21.1.3)^t 21.1.4(0/21.1.4)^t **9999(0/9999)*l^t {debug dmx +elogind kdrive minimal selinux suid systemd test +udev unwind xcsecurity xephyr xnest xorg xvfb}
     Установленные версии:  21.1.4(0/21.1.4)^t(23:54:04 21.07.2022)(elogind udev xorg -debug -minimal -selinux -suid -systemd -test -unwind -xcsecurity -xephyr -xnest -xvfb)
     Домашняя страница:     https://www.x.org/wiki/ https://gitlab.freedesktop.org/xorg/xserver/xorg-server
     Описание:              X.Org X servers

Есть у кого идеи, как дебажить и куда копать? Пока что переключился на дефолтное dist-ядро, подумал, может проблемы с моей сборкой, но лучше не стало.

 , , , ,

shell-script
()

Calibre не полностью работает из flatpak

Всем привет.

Имеется хост Gentoo stable.

└─> eix sys-apps/flatpak
[I] sys-apps/flatpak
     Доступные версии:      1.12.3^t ~1.12.7^t ~1.13.2^t ~1.13.3^t {X doc introspection policykit seccomp systemd}
     Установленные версии:  1.12.3^t(03:38:56 14.07.2022)(X policykit -doc -introspection -seccomp -systemd)
     Домашняя страница:     https://flatpak.org/
     Описание:              Linux application sandboxing and distribution framework
└─> flatpak list --app
Имя                ID Приложения                      Версия         Ветка         Тип установки
calibre            com.calibre_ebook.calibre          6.2.1          stable        user
Flatseal           com.github.tchx84.Flatseal         1.8.0          stable        user
LibreOffice        org.libreoffice.LibreOffice        7.3.5.2        stable        user

Запускаю calibre никаких ошибок, приложение открывается. Кнопочки нажимаются, но при попытке открыть любой диалог выбора директории или файла, ничего не происходит. Т.е. ни добавить книгу, ни изменить местополжение библиотеки, вообще никаких манипуляций с файлами. Проверял права как руками, так и через Flatseal, на работу с файлововй системой ограничений нет. В установленном рядом LibreOffice всё работает нормально.

Попробовал запускать с дебагом и в strace через

LANG=C flatpak run --command=sh --devel com.calibre_ebook.calibr

Но не вижу ничего особо критичного(либо я не знаю, что искать в том же strace в данном случае).

xdg-desktop-portal стоит. Доустанавливать дополнительно версии kde/gtk пробовал - поведение не меняется.

└─> eix -c xdg-desktop
[N] gui-libs/xdg-desktop-portal-lxqt (0.2.0): Backend implementation for xdg-desktop-portal using Qt/KF5/libfm-qt
[N] gui-libs/xdg-desktop-portal-wlr (0.5.0(0/9999)): xdg-desktop-portal backend for wlroots
[N] kde-plasma/xdg-desktop-portal-kde (5.24.6(5)): Backend implementation for xdg-desktop-portal that is using Qt/KDE Frameworks
[I] sys-apps/xdg-desktop-portal (1.14.4@14.07.2022): Desktop integration portal
[N] sys-apps/xdg-desktop-portal-gnome (~42.3): Backend implementation for xdg-desktop-portal using GNOME
[N] sys-apps/xdg-desktop-portal-gtk (1.14.0): Backend implementation for xdg-desktop-portal using GTK+

Куда ещё можно копнуть?

P.S. Ставить appimage, snap или устанавливать нативный пакет - не предлагать. Меня в данный момент интересует именно flatpak.

 , ,

shell-script
()

Сломал portage, прервав обновление мира.

portage-2.3.2 Обновлял мир командой emerge -uND world. В какой-то момент по ошибке прервал процесс с помощью Ctrl+C. Выдало несколько штатных сообщений по поводу пакетов, которые уже обновились, последним было:

 * Messages for package media-libs/harfbuzz-1.3.1:

 * ERROR: media-libs/harfbuzz-1.3.1::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=media-libs/harfbuzz-1.3.1::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=media-libs/harfbuzz-1.3.1::gentoo'`.
 * The complete build log is located at '/tmp/portage/media-libs/harfbuzz-1.3.1/temp/build.log'.
 * The ebuild environment file is located at '/tmp/portage/media-libs/harfbuzz-1.3.1/temp/environment'.
 * Working directory: '/tmp/portage/media-libs/harfbuzz-1.3.1/work/harfbuzz-1.3.1-abi_x86_32.x86'
 * S: '/tmp/portage/media-libs/harfbuzz-1.3.1/work/harfbuzz-1.3.1'
Далее попробовал снова запустить обновление и теперь получаю
└─> emerge -uND world

These are the packages that would be merged, in order:

Calculating dependencies... done!
Traceback (most recent call last):
  File "/usr/lib/python-exec/python2.7/emerge", line 50, in <module>
    retval = emerge_main()
  File "/usr/lib64/python2.7/site-packages/_emerge/main.py", line 1224, in emerge_main
    return run_action(emerge_config)
  File "/usr/lib64/python2.7/site-packages/_emerge/actions.py", line 3261, in run_action
    retval = action_build(emerge_config, spinner=spinner)
  File "/usr/lib64/python2.7/site-packages/_emerge/actions.py", line 338, in action_build
    settings, trees, myopts, myparams, myaction, myfiles, spinner)
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 9247, in backtrack_depgraph
    myaction, myfiles, spinner)
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 9284, in _backtrack_depgraph
    success, favorites = mydepgraph.select_files(myfiles)
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 3606, in select_files
    return self._select_files(args)
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 3949, in _select_files
    return self._resolve(myfavorites)
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 4100, in _resolve
    if not self._create_graph():
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 2401, in _create_graph
    allow_unsatisfied=allow_unsatisfied):
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 3112, in _add_pkg_deps
    allow_unsatisfied):
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 3128, in _add_pkg_dep_string
    allow_unsatisfied)
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 3208, in _wrapped_add_pkg_dep_string
    pkg, dep_priority, root_config, selected_atoms[pkg]):
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 3407, in _minimize_children
    root_config.root, atom, parent=parent)
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 5364, in _select_pkg_highest_available
    ret = self._select_pkg_highest_available_imp(root, atom, onlydeps=onlydeps, parent=parent)
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 5576, in _select_pkg_highest_available_imp
    root, atom, onlydeps=onlydeps, parent=parent)
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 5872, in _wrapped_select_pkg_highest_available_imp
    onlydeps=onlydeps):
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 5282, in _iter_match_pkgs_atom
    installed=installed, onlydeps=onlydeps, myrepo=repo)
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 6580, in _pkg
    if not self._pkg_visibility_check(pkg) and \
  File "/usr/lib64/python2.7/site-packages/_emerge/depgraph.py", line 5620, in _pkg_visibility_check
    if pkg.visible:
  File "/usr/lib64/python2.7/site-packages/_emerge/Package.py", line 177, in visible
    self._visible = self._eval_visiblity(self.masks)
  File "/usr/lib64/python2.7/site-packages/_emerge/Package.py", line 171, in masks
    self._masks = self._eval_masks()
  File "/usr/lib64/python2.7/site-packages/_emerge/Package.py", line 403, in _eval_masks
    self.cpv, self._metadata)
  File "/usr/lib64/python2.7/site-packages/portage/package/ebuild/config.py", line 2041, in _getMissingLicenses
    cpv, metadata["USE"], metadata["LICENSE"], metadata["SLOT"], metadata.get('repository'))
  File "/usr/lib64/python2.7/site-packages/_emerge/Package.py", line 872, in __getitem__
    v = self._pkg._init_use()
  File "/usr/lib64/python2.7/site-packages/_emerge/Package.py", line 664, in _init_use
    use_str = self._get_pkgsettings()["PORTAGE_USE"]
  File "/usr/lib64/python2.7/site-packages/_emerge/Package.py", line 639, in _get_pkgsettings
    pkgsettings.setcpv(self)
  File "/usr/lib64/python2.7/site-packages/portage/package/ebuild/config.py", line 1384, in wrapper
    return f(self, *args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/portage/package/ebuild/config.py", line 1559, in setcpv
    self.puse = self._use_manager.getPUSE(cpv_slot)
  File "/usr/lib64/python2.7/site-packages/portage/package/ebuild/_config/UseManager.py", line 555, in getPUSE
    puse_matches = ordered_by_atom_specificity(cpdict, pkg)
  File "/usr/lib64/python2.7/site-packages/portage/package/ebuild/_config/helper.py", line 34, in ordered_by_atom_specificity
    bestmatch = best_match_to_list(pkg, keys)
  File "/usr/lib64/python2.7/site-packages/portage/dep/__init__.py", line 2058, in best_match_to_list
    for x in match_to_list(mypkg, mylist):
  File "/usr/lib64/python2.7/site-packages/portage/dep/__init__.py", line 2026, in match_to_list
    if x not in matches and match_from_list(x, pkgs):
  File "/usr/lib64/python2.7/site-packages/portage/dep/__init__.py", line 2341, in match_from_list
    use = getattr(x, "use", None)
  File "/usr/lib64/python2.7/site-packages/_emerge/Package.py", line 633, in use
    self._init_use()
  File "/usr/lib64/python2.7/site-packages/_emerge/Package.py", line 664, in _init_use
    use_str = self._get_pkgsettings()["PORTAGE_USE"]
  File "/usr/lib64/python2.7/site-packages/_emerge/Package.py", line 639, in _get_pkgsettings
    pkgsettings.setcpv(self)
  File "/usr/lib64/python2.7/site-packages/portage/package/ebuild/config.py", line 1381, in wrapper
    raise AssertionError('setcpv recursion detected')
AssertionError: setcpv recursion detected
Попытка собрать отдельный пакет выдаёт ту же ошибку. Хотя всякие eix и equery работают. eix-sync обновил дерево, equery вот:
└─> equery u bash
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for app-shells/bash-4.3_p48:
 U I
 - - afs          : Add OpenAFS support (distributed file system)
 - - bashlogger   : Log ALL commands typed into bash; should ONLY be used in restricted environments such as honeypots
 - - examples     : Install examples, usually source code
 - - mem-scramble : Build with custom malloc/free overwriting allocated/freed memory
 + + net          : Enable /dev/tcp/host/port redirection
 + + nls          : Add Native Language Support (using gettext - GNU locale utilities)
 - - plugins      : Add support for loading builtins at runtime via 'enable'
 - + readline     : Enable support for libreadline, a GNU line-editing library that almost everyone wants
 - - vanilla      : Do not add extra patches which change default behaviour; DO NOT USE THIS ON A GLOBAL SCALE as the severity of the meaning changes drastically
В гугле пока только одно сообщение с такой ошибкой нагуглил(оно и понятно, её только в прошлом месяце закоммитили). Там предлагают, если я правильно понял, привести /etc/portage в дефолт, всё пересобрать, а потом свои юзы накатывать. У меня пакетов куча, не хотелось бы.

Есть у кого идеи, что именно я сломал? Я посмотрел в код, где добавили этот эксепшн, но моего знания питона не хватило, чтобы конкретно понять, что там происходит.

 ,

shell-script
()

Демону не передаются аргументы командной строки

Собрал из исходников себе пакетик с gearmand-1.1.2

Написал для него unit такого вида:

[Unit]
Description=gearman job control server

[Service]
EnvironmentFile=/etc/default/gearmand
ExecStartPre=/usr/bin/install -d -o gearman /run/gearman
PermissionsStartOnly=true
User=gearman
PIDFile=/run/gearman/server.pid
ExecStart=/usr/sbin/gearmand ${PARAMS} 

[Install]
WantedBy=multi-user.target

В /etc/default/gearmand прописал все необходимые параметры:

PARAMS="--listen=127.0.0.1 \
--pid-file=/run/gearman/server.pid \
--log-file=/var/log/gearman-job-server/gearman.log \
--queue-type=postgres \
--libpq-conninfo='host=localhost user=gearman password=password dbname=gearman' \
--libpq-table=queue \
--daemon"

Активировал всё это дело с помощью systemctl enable gearmand.service

Запускаю systemctl start gearmand.service, всё вроде бы как запустилось, но в статусе пишет предупреждение

● gearmand.service - gearman job control server
   Loaded: loaded (/etc/systemd/system/gearmand.service; enabled)
   Active: active (running) since Thu 2015-10-15 11:12:30 UTC; 4s ago
  Process: 14595 ExecStartPre=/usr/bin/install -d -o gearman /run/gearman (code=exited, status=0/SUCCESS)
 Main PID: 14598 (gearmand)
   CGroup: /system.slice/gearmand.service
           └─14598 /usr/sbin/gearmand --listen=127.0.0.1 --pid-file=/run/gearman/server.pid --log-file=/var/log/gearman-job-server/gearman.log --queue-type=postgres --libpq-conninfo='host=localhost user=gearman password=password...

Oct 15 11:12:29 giveya.com systemd[1]: Starting gearman job control server...
Oct 15 11:12:30 giveya.com systemd[1]: Started gearman job control server.
Oct 15 11:12:30 giveya.com gearmand[14598]: /usr/sbin/gearmand: Could not open log file "/usr/var/log/gearmand.log", from "/", switching to stderr. (No such file or directory)

Т.е. демон пытается запуститься с дефолтными параметрами, игнорируя все опции командной строки, хотя в ps пишет, что опции были переданы

# ps waux | grep [g]earman
gearman  14598  0.0  0.1 451188  5872 ?        Ssl  11:12   0:00 /usr/sbin/gearmand --listen=127.0.0.1 --pid-file=/run/gearman/server.pid --log-file=/var/log/gearman-job-server/gearman.log --queue-type=postgres --libpq-conninfo='host=localhost user=gearman password=password dbname=gearman' --libpq-table=queue --daemon

Однако lsof явно показывает, что логи не открылись где надо и в /run никаких pid-файлов не создалось.

Я подумал было, что сам gearmand глючит, но если со всеми моими опциями запустить его ручками из консоли, он запускается нормально, логи и пиды создаются, в lsof видно, что демон приконнектился к постгресу.

# ps waux | grep [g]earman
root     14662  0.0  0.1 459732  6708 ?        Ssl  11:22   0:00 /usr/sbin/gearmand --listen=127.0.0.1 --pid-file=/run/gearman/server.pid --log-file=/var/log/gearman-job-server/gearman.log --queue-type=postgres --libpq-conninfo=host=localhost user=gearman password=password dbname=gearman --libpq-table=queue --daemon
postgres 14663  0.0  0.3 228564 14740 ?        Ss   11:22   0:00 postgres: gearman gearman 172.30.0.166(35460) idle 
# lsof -n | grep gearman | grep -E '(var|postgr)' | head -n 2
gearmand  14662           root    4w      REG              202,1        0     395116 /var/log/gearman-job-server/gearman.log
gearmand  14662           root    5u     IPv4              42645      0t0        TCP 127.0.0.1:35460->127.0.0.1:postgresql (ESTABLISHED)

Почему опции не отработали через systemd? Хочется сделать всё нормально через юнит, а не добавлять команду запуска gearmand'а тупо в rc.local.

 

shell-script
()

Нестандартные условия в systemd unit

Есть некая самописная приблуда. Большая и страшная. Стартует сразу после того, как запустилась сеть и подрубились сетевые диски. С них тянет часть данных, в них ковыряется, разбирает, берёт входные данные и только потом начинает работать.

При останове аналогично. Сперва лезет на диски, смотрит, проверяет, считает, пишет и только потом останавливается.

Я в упор не могу понять, как сделать юнит с зависимостями от сетевых дисков(они у меня монтируются после поднятия сети в /etc/network/interfaces с помощью post-up по sshfs) и потом только поднимать эту самую приблуду.

Ладно с ним, с ресурсами, там же ещё действия нужно перед запуском произвести. Посчитать, посмотреть и только потом стартовать.

В общем, где подробно почитать, как в этом systemd писать развёрнутые условия и как при старте системы использовать произвольные параметры?

 ,

shell-script
()

logind. После logout юзер всё-равно висит в системе.

Debian testing.

Система установлена с нуля, нет никаких нестандартных настроек. Только базовый набор и xfce4.

systemd и соответсвенно logind.

Есть в системе юзер user1, я залогинился этим пользователем, через su получил рута, создал пользователя user2, вышел из su, разлогинился из user1.

Логинюсь под вновь созданным user2, получаю рута и пытаюсь удалить user1, но система не даёт, так как имеются какие-то процессы, запущенные от имени этого пользователя. Смотрю по ps и вижу, что есть таких два штуки:

/lib/systemd/systemd --user

и какая-то мутотень(как вообще понимать, что это за процесс?)

(sd-pam)

Ну я-то их прибил и пользователя удалил, но осадочек остался. Как и вопросы.

1. Какой логикой обусловлено то, что после того, как пользователь полностью вышел из системы, остались процессы, запущенные от его имени?

2. Где искать документацию по поводу того, как подобные паразитные процессы убивать и где искать документацию по поводу того, как подобное предотвратить?

 ,

shell-script
()

Bitrate в ogg после конвертирования из mp3.

Занялся тут конвертированием имеющейся у меня музыки из mp3 в ogg и вот, что заметил.

Имеется файл.

$ file ~/random/music/Accept/\(2014\)\ Blind\ Rage/02\ -\ Dying\ Breed.mp3 
/home/cppmm/random/music/Accept/(2014) Blind Rage/02 - Dying Breed.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 320 kbps, 44.1 kHz, JntStereo
$ ls -l ~/random/music/Accept/\(2014\)\ Blind\ Rage/02\ -\ Dying\ Breed.mp3 
-rw-r--r-- 1 cppmm cppmm 12944868 авг 14 18:34 /home/cppmm/random/music/Accept/(2014) Blind Rage/02 - Dying Breed.mp3
Использую команду
$ ffmpeg -y -i /home/cppmm/random/music/Accept/\(2014\)\ Blind\ Rage/02\ -\ Dying\ Breed.mp3 -acodec libvorbis -vn  audio-q0.ogg
И получаю
$ file audio-q0.ogg 
audio-q0.ogg: Ogg data, Vorbis audio, stereo, 44100 Hz, ~112000 bps
$ ls -la audio-q0.ogg 
-rw-r--r-- 1 cppmm cppmm 4478311 авг 31 22:42 audio-q0.ogg
Но если добавить ffmpeg'у опцию -aq 60 (или 40, или 100 - не важно, сколько там указать), то на выходе файл становится вот таким:
$ file audio-q60.ogg 
audio-q60.ogg: Ogg data, Vorbis audio, stereo, 44100 Hz, ~499821 bps
$ ls -la audio-q60.ogg 
-rw-r--r-- 1 cppmm cppmm 18453977 авг 31 22:42 audio-q60.ogg

По ощущениям все файлы звучат одинаково. Но откуда такая разница в размере файлов и почему в ogg в первом случае указан битрейт 112, во втором 490? Особенно это интересно с учётом того, что в изначальном, mp3'шном файле указано 320.

Ну и попутно ещё такой небольшой вопрос, почему опция -aq не обращает внимания, сколько там указано и при любых значениях выдаёт совершенно одинаковый результат?

P.S. Меня не интересует, всё, что связано с лослессом и прочими аудиофильскими вещами, любители flac могут не тратить время. Меня интересует исключительно поведение программы ffmpeg.

 , , ,

shell-script
()

FEATURES=«buildpkg»

Я так понимаю, несмотря на все указания в манах и хендбуке о том, что опцию buildpkg можно при желании включить, она и без этого включена по умолчанию. Добавляю в FEATURES -buildpkg, но судя по emerge --info, ничего не меняется. Если же запустить emerge --info --buildpkg=n, эта опция из FEATURES пропадает.

Почему игнорируется FEATURES="-buildpkg"? Что делать, если я хочу отключить сборку бинарных пакетов? Не лепить же костыль alias'ом на emerge.

 , ,

shell-script
()

kernel panic 3.13.5

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

Там ядро 3.6.2-gentoo, ставлю 3.13.5-gentoo. Взял конфиг от старого, подсунул новому, запустил разок make menuconfig, бегло посмотрел основные опции, сохранил и собрал genkernell'ом новое ядро. В качестве загрузчика использует Lilo, поэтому подправил его конфиг, записал в mbr и ребутаюсь. Стабильно получаю kernel panic с сообщением о том, что не получается примонтировать корень. В ядре libata и ext4(в неё отформатирован корень) включены. Что ещё мог забыть, почему не пашет? Уже просмотрел конфиг ядра несколько раз, не могу понять. Конфиг можно посмотреть вот тут.

UPD: Вот ещё на всякий случай конфиг загрузчика.

 ,

shell-script
()

Изменились правила того, что попадает в оффтопик?

Собственно, я про эту тему: www.linux.org.ru/forum/talks/9547559

Мало того, что модераторам на неё пофиг(а репорт они видели, так как последующие обработаны), так её ещё и корректор подправил. Я пропустил изменения в правилах?

Ладно, фиг с ним, может я один считаю, что автор этой темы толстый тролль и не несёт полезной информации на ЛОР, но конкретно эта тема-то явный оффтоп. От начала и до конца, включая комменты.

shell-script
()

virtuoso съедает всю память.

Я тут недавно поднимал тему по поводу всех этих семантических десктопов. Там я справился и пока замаскировал всё, что связано с этим. Но многие в теме писали о том, что я не прав и что аконади быстро и удобно работает.

Я поверил и решил снова в очередной раз это дело попробовать. Пробовал не на генте(там меня и так всё устраивает и менять пока желания нет). Пробовал на другом компе. Debian testing. KDE4. nepomuk с akonadi включены. Включено хранилище virtuoso. Индексирование только на домашнюю директорию.

Сперва нормально работал(ни разу так толком и не воспользовавшись этими плюшками, проставив лишь несколько тегов с помощью dolphin). А вот через пару дней начались какие-то странные глюки. Памяти свободной ещё около гига, но система уже на гиг ушла в своп. Топы показывают, что больше всего ест virtuoso. Зачем? Почему? В настройках для неё указано использовать не более 50-ти метров памяти.

Отрубаю половину программ, чищу своп, не успеваю даже запустить и тут же virtuoso снова залазит в своп на гиг. В итоге, во всех возможных настройках поотключал всё, что связано с этими аконадями, непомуками и прочими виртуозами. Что не мешает им висеть в процессах, кстати. Но хотя бы теперь оно не тормозит систему.

Итак, вопрос к тем, у кого красиво и хорошо работает семантический десктоп kde4 и ничего не тормозит. Что мне надо сделать на почти дефолтном дебиане, чтобы машина с 4-мя гигами памяти не уползала в своп при вполне пользовательских задачах и при этом можно было ощутить хотя бы прелести поиска по тегам? Я серьёзно хочу понять, как этим пользоваться. Докупать память - не вариант.

 

shell-script
()

Использование Perl для создания web-приложений.

Пишу тут один небольшой проектик. На perl'е, как можно догадаться из заголовка. По задумке, основной функционал аккуратно разложен по библиотекам, которые подключаются по мере надобности в конечном приложении. Так, на данный момент реализован демон и консольная утилита для управления им. Хотелось бы ещё привинтить к нему web-интерфейс. Вот тут я как-то пока растерялся. Сперва думал использовать что-нибудь простенькое из cpan, но всяких разных модулей очень много, во-первых, а во-вторых что-то я начитался про то, что тот же mod_perl в апаче память сильно ест со временем, а для очистки надо ещё дополнительные модули тянуть или костыли какие-то городить. После этого стал рыть в сторону фреймворков. У меня проект не сложный и решил остановиться на mojolicious. Даже начал писать, потом обновился и понял, что всё поменялось, новая документация ещё не появилась и придётся разбираться во всех внутренностях mojolicious с нуля.

Собственно, решил спросить, пишет ли кто-нибудь ещё web-приложения на perl и, если да, что для их запуска использует(mod_perl, cgi, отдельно запускаемые фреймворки, ещё что-нибудь)?

Конкретно по моей задаче, от web-морды не требуется ничего особенного: показать то, что возвращают мои библиотечные функции, иногда передать им данные для обработки и записи в базу.

Другие языки не предлагать, переписывать всё мне лень, к тому же меня устраивает на все 100% нынешняя реализация демона и консоли. К тому же других языков помимо perl, php и bash'а я не знаю и знать не хочу пока что. И с другой стороны, если для решения такой задачи понадобится какой-то специализированный софт на сервере для более удобной работы perl'а(например как thin для ruby) - это не проблема, главное, чтобы работало быстро и без глюков.

 ,

shell-script
()

В KDE-4.10 от semantic-desktop уже не отвертеться?

Сейчас захотел обновиться и получил вот такой вот выхлоп:

$ emerge -uNDp world

These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds built with USE flags to satisfy ">=kde-base/kdelibs-4.8.4:4[aqua=,opengl?,semantic-desktop(+)]".
!!! One of the following packages is required to complete your request:
- kde-base/kdelibs-4.10.4::gentoo (Change USE: +semantic-desktop)
(dependency required by "media-sound/amarok-2.7.1" [ebuild])
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])
Это что, получается теперь от этого хлама уже и в генте не избавиться? У меня в глобальных USE прописано -semantic-desktop, не понимаю, зачем его добавлять к kdelibs. Никаким софтом, не него завязанным(всякие там kmail, korganizer и т.д.) не пользуюсь.

Прикладываю на всякий случай emerge --info.

 , ,

shell-script
()

Intel Xeon E3-1200 Graphics Controller и opengl

Система Debian testing.

Имеется процессор вот с таким встроенным видео:

00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])                                                                                                                         
        Subsystem: ASUSTeK Computer Inc. P8H77-I Motherboard                                                                                                                                                                                                                   
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+                                                                                                                                                                  
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-                                                                                                                                                                   
        Latency: 0                                                                                                                                                                                                                                                             
        Interrupt: pin A routed to IRQ 45                                                                                                                                                                                                                                      
        Region 0: Memory at f7800000 (64-bit, non-prefetchable) [size=4M]                                                                                                                                                                                                      
        Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]                                                                                                                                                                                                        
        Region 4: I/O ports at f000 [size=64]                                                                                                                                                                                                                                  
        Expansion ROM at <unassigned> [disabled]                                                                                                                                                                                                                               
        Capabilities: <access denied>                                                                                                                                                                                                                                          
        Kernel driver in use: i915 
Opengl не работает.
$ glxgears 
Error: couldn't get an RGB, Double-buffered visual
$ glxinfo 
name of display: :0
Error: couldn't find RGB GLX visual or fbconfig
И я вот что-то так и не смог найти однозначного ответа, это вообще возможно на таких процах или нет? Я сам с таким процом на десктопе встретился впервые, поэтому пока гуглю, но что-то не нагугливается.

Если возможно, то где искать драйверы? В дистрибутиве вроде бы нет. На сайте интела, если я правильно понял, написано, что в скомпилированном виде дрова должны быть в дистре, а у них там только исходники.

В общем, поделитесь историей успеха запуска opengl на таком железе.

 , ,

shell-script
()

GUI к mysql на QT

Возник такой вопрос, а есть ли нормальные GUI к MySQL на QT? Какие-нибудь аналоги MySQL Workbench или может даже что получше? Из обязательных условий помимо собственно удобной работы с данными возможность подключаться к удалённым базам через ssh. Возможность администрирования сервера бд помимо непосредственно работы с базой приветствуется, но не главное.

 , ,

shell-script
()

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