LINUX.ORG.RU

Сообщения Bass

 

Можно ли настроить GtkAppChooserWidget через ~/.config/gtk-3.0/settings.ini?

Всем здравствуйте.

Проблема:

В GTK+ 2.x не было GtkAppChooserWidget и GtkAppChooserDialog, кому-то это было удобно, кому-то нет, но это давало определённую свободу. Пример из UI Mozilla (выбор обработчика для MIME-типа сводится тупо к выбору исполняемого файла):

Снимок для GTK+ 2.x

В GTK+ 3.x упомянутые UI-компоненты ввели, выглядит это всё куда приятнее, но свобода открыть MIME-тип X с помощью чёрта-в-ступе (напр., /bin/ls, или моего колхозного скрипта, для которого, разумеется, нет *.desktop entry), увы, утрачена:

Пример того же UI для GTK+ 3.x

Кто знает – настраивается ли GtkAppChooserWidget через ~/.config/gtk-3.0/settings.ini?

 , ,

Bass
()

Куда делся icedtea-8-plugin из Debian 9u1?

Всем здравствуйте.

Перед переходом на Buster решил полностью обновить Stretch, и наблюдаю следующее: пакет icedtea-8-plugin (версия 1.6.2-3.1) «ушёл» вместе с обновлением Debian 9u1.

В ChangeLog следующая короткая запись:

[Date: Sat, 27 Apr 2019 08:33:24 +0000] [ftpmaster: Archive Administrator]
Removed the following packages from stable:

icedtea-8-plugin |  1.6.2-3.1 | amd64, arm64, armel, armhf, i386, ppc64el, s390x

------------------- Reason -------------------
[auto-cruft] NBS (no longer built by icedtea-web)

В истории самого пакета нашёл коммит e38fab076e79e7f3eb8958ec5aa20e11d3f02ddd («Drop support of browser plugin»).

Кто-нибудь может прокомметировать, с какой целью это было сделано, если последняя бинарная версия (1.8, март 2019 года) с официального сайта по-прежнему поддерживаает NPAPI?

 , , ,

Bass
()

Travis CI и GNU Autotools: gcc vs clang

Всем здравствуйте.

А может ли кто-ниудь взглянуть на вот эти два вывода:

– и прокомментировать, какого рожна gcc (в отличие от clang) не смог слинковать при том, что все нужные зависимости были одинаково установлены?

На моей машине всё, ясен пень, успешно собирается.

Кто умеет в удалённую отладку Трэвиса? =)

Update: ИЧСХ, эквивалентная конфигурация GCC на GitLab успешно проходит.

 , , ,

Bass
()

Новый логотип Debian Linux

Собственно, вот.

Во всех кинотеатрах страны.

С каких щей дистрибутив поменял логотип? Чем им старый не угодил?

Update: всё, отбой. Оказывается, это Debian Diversity logo. Блин, да что же сегодня за день-то такой?

 

Bass
()

emacsclient не загружает ресурсы X11

Всем здравствуйте.

В обычных условиях Emacs (Lucid menus & scroll bars) при запуске загружает ресурсы X-сервера:

$ strace emacs -c 2>&1 | grep -v ENOENT | grep app-defaults                                                        (master *)
open("/home/bass/.app-defaults/Xresources", O_RDONLY) = 6
access("/home/bass/.app-defaults/Emacs", R_OK) = 0
stat("/home/bass/.app-defaults/Emacs", {st_mode=S_IFREG|0664, st_size=5488, ...}) = 0
open("/home/bass/.app-defaults/Emacs", O_RDONLY) = 6
open("/home/bass/.app-defaults/Motif-2.1", O_RDONLY) = 6
open("/home/bass/.app-defaults/Motif", O_RDONLY) = 6
open("/home/bass/.app-defaults/Emacs", O_RDONLY) = 6
open("/home/bass/.app-defaults/Motif-2.1", O_RDONLY) = 6
open("/home/bass/.app-defaults/Motif", O_RDONLY) = 6

Но вот если запустить emacsclient -c – то увы (т. е. информация о шрифте, цвете фона и проч. – не загружается):

$ strace emacsclient -c 2>&1 | grep app-defaults
<пусто>

Вопрос: как побороть?

 , ,

Bass
()

Как отключить кнопку выключения питания? acpid и systemd ни при чём.

Всем здравствуйте!

Есть машина с Debian 9 и SysV init.

Глобальный файл настройки /etc/default/acpid выглядит так:

# Options to pass to acpid
#
# OPTIONS are appended to the acpid command-line
OPTIONS="--logevents"

# Linux kernel modules to load before starting acpid
#
# MODULES is a space separated list of modules to load, or "all" to load all
# acpi drivers, or commented out to load no module
#MODULES="battery ac processor button fan thermal video"
MODULES="all"

В /etc/acpi/events/powerbtn-acpi-support строка action закомментирована:

event=button[ /]power
##action=/etc/acpi/powerbtn-acpi-support.sh

что подтверждается сообщениями в /var/log/syslog:

Jun  6 00:07:07 proxima acpid: starting up with netlink and the input layer
Jun  6 00:07:07 proxima acpid: skipping incomplete file /etc/acpi/events/powerbtn-acpi-support
Jun  6 00:07:07 proxima acpid: 26 rules loaded
Jun  6 00:07:07 proxima acpid: waiting for events: event logging is on

После изменения файла /etc/acpi/events/powerbtn-acpi-support при нажатии кнопки выключения питания acpid перестал выдавать сообщение вида

Jun  5 23:52:32 proxima acpid: received input layer event "button/power PBTN 00000080 00000000 K"

что хорошо. Но, в то же время, нажатие по-прежнему приводит к выключению (даже при остановленном acpid):

Jun  6 00:05:36 proxima acpid: exiting
Jun  6 00:05:38 proxima shutdown[4365]: shutting down for system halt
Jun  6 00:05:38 proxima init: Switching to runlevel: 0
Jun  6 00:05:39 proxima bluetoothd[2764]: Terminating
Jun  6 00:05:39 proxima bluetoothd[2764]: Stopping SDP server
Jun  6 00:05:39 proxima bluetoothd[2764]: Exit
Jun  6 00:05:39 proxima lvmetad[1952]: Failed to accept connection errno 11.
Jun  6 00:05:39 proxima kernel: [  161.377939] VBoxPciLinuxLinuxUnload
Jun  6 00:05:41 proxima ntpd[2572]: ntpd exiting on signal 15 (Terminated)

systemd у меня нет.

Если не acpid и не systemd – то кто?!

 , , ,

Bass
()

Как в X11 посмотреть геометрию клавиатуры (/usr/share/X11/xkb/geometry)?

Всем здравствуйте.

В пакете xkb-data в каталоге /usr/share/X11/xkb/geometry лежат описания геометрии всевозможных клавиатур, известных расширению XKEYBOARD.

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

xkb_geometry "pc105" {

    description= "Generic 105";
    width= 470;
    height= 180;

    shape.cornerRadius= 1;

    shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } };
    shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } };
    shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } };
    shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } };
    shape "RTRN" {
        { [0,0], [28,0], [28,37], [5,37], [5,18], [0,18] } ,
        { [2,1], [26,1], [26,35], [7,35], [7,16], [2,16] } ,
        approx = { [5,0], [28,37] } };
    shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } };
    shape "LFSH" { { [ 25,18] }, { [2,1], [ 23,16] } };
    shape "RTSH" { { [ 50,18] }, { [2,1], [ 48,16] } };
    shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } };
    shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } };
    shape "SPCE" { { [113,18] }, { [2,1], [111,16] } };
    shape "KP0"  { { [ 37,18] }, { [2,1], [ 35,16] } };
    shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } };

    shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } };
    shape "LED"  { cornerRadius= 0, { [  5,  1 ] } };
    solid "LedPanel" {
        shape= "LEDS";
        top=  22;
        left= 377;
        color= "grey10";
    };

    indicator.onColor= "green";
    indicator.offColor= "green30";
    indicator.top= 37;
    indicator.shape= "LED";
    indicator "Num Lock"     { left= 382; };
    indicator "Caps Lock"    { left= 407; };
    indicator "Scroll Lock"  { left= 433; };

Вопрос: как перевести это описание в картинку, понятную глазу?

Есть древний проект XKeyCaps (https://www.jwz.org/xkeycaps/, https://salsa.debian.org/debian/xkeycaps), который уже давно почти не развивается, но, если взглянуть на исходный код, то описания клавиатур там в совершенно другом, несовместимом формате (Jamie Zawinski был молод и неопытен).

Хочется чего-то подобного, но современнее. Есть ли?

 , ,

Bass
()

Настройки Sun Type 6 Keyboard вопрос

Всем здравствуйте.

Есть упомянутая клавиатура (USB), которая сейчас сконфигурирована как pc105:

Section "InputClass"
        # ...
        Option          "XkbRules"      "xorg"
        Option          "XkbModel" "pc105"
        Option          "XkbLayout" "us,ru"
        Option          "XkbVariant" ",winkeys"
        Option          "XkbOptions" "grp:menu_toggle,grp_led:scroll"
EndSection

На клавиатуре есть специальная клавиша «Lat/Рус», которая в режиме pc105 как раз опознаётся как menu (grp:menu_toggle), и в результате иксовые приложения видят её как ISO_Next_Group.

Всё бы хорошо, но при переключении раскладки горит индикатор Scroll Lock (grp_led:scroll), тогда как у самой клавиатуры индикаторов не три (как обычно), а четыре: 4-й – это самостоятельный индикатор «Lat/Рус».

Вопрос: как задействовать этот самый индикатор в режиме pc105?

Вопрос: как правильно настроить клавиатуру в режиме sun_type6_*? Из коробки ни переключение раскладок, ни 4-й индикатор, ни доп. клавиши (Help, Stop, Again, …, Cut) не работают.

 , , ,

Bass
()

Как в Debian Linux «не поднимать» сетевой интерфейс при запуске системы?

Всем здравствуйте.

Есть ноутбук, на нём – два сетевых интерфейса: eth0 и wlan0.

Хочется иметь настройки для eth0 в /etc/network/interfaces (напр., использовать DHCP, а тж dns-search), но, при этом, чтобы при запуске системы (/etc/init.d/networking start) или перезапуске соотв. сервиса (/etc/init.d/networking {stop|restart}) интерфейс eth0 игнорировался, а «поднимался» только по явному ifup eth0. Вопрос: как?

Сейчас конфигурация примерно такая, и это не работает (т. е. каждый раз для eth0 идёт попытка настройки по DHCP):

auto lo
iface lo inet loopback

#auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
        dns-search example.com

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
        dns-search example.com
        wpa-ssid ...
        wpa-psk ...

Разновидность этого же вопроса – как сделать так, чтобы попытка конфигурации eth0 предпринималась только в случае, когда витая пара воткнута в разъём RJ-45, ну т. е. тогда, когда link detected (через /sys/class/net/eth0/operstate или ethtool)?

$ ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Speed: 10Mb/s
        Duplex: Half
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: d
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
        Link detected: no

 ,

Bass
()

Права на `eject` для внешнего CD-ROM'а

Всем здравствуйте.

Есть внешний CD-ROM, который упомянут в /etc/fstab следующим образом:

/dev/sr0                                        /mnt/cdrom0             iso9660 user,noauto                                     0       0

– т. е. монтировать и демонтировать диски от имени обычного пользователя я вполне могу.

Тем не менее, при попытке выполнить eject я вижу

eject: unable to open `/dev/sr0'

С другой стороны, sudo eject работает без проблем.

Куда копать?

 

Bass
()

Создание зеркала Debian

Всем здравствуйте.

При попытке установить Debian Wheezy на SPARC с archive.debian.org наблюдаю, что в процессе установки постоянно рвётся связь, в рез-те netinstall-установщик (CD-ROM в машине давно сдох, есть только загрузка по сети) даже собственные компоненты загружает с 4-й или 5-й попытки.

Соот-но, дабы исключить проблемы сети, хочется в локальной сетке создать собственное зеркало с нардами и гуриями (только Wheezy и только для архитектуры SPARC).

Возможно, мне нужно даже не зеркало, а лишь минимальный набор пакетов для установки базовой системы.

Что посоветуете? Вот эта простыня: DebianRepository/Setup выглядит уж очень огромной.

 

Bass
()

Как соотносятся Debian Wheezy/SPARC и текущий SPARC64-порт?

Как соотносятся текущий SPARC64-порт и Debian Wheezy/SPARC (последняя официальная версия с поддержкой SPARC, 64-разрядное ядро с 32-разрядным userspace)?

  • Есть ли на ЛОРе живые пользователи Linux на SPARCv9?
  • В каком состоянии находится SPARC64-порт? Есть ли там какое-л. развитие?
  • Каков путь миграции с Debian Wheezy на SPARC64-порт? Т. е. я, конечно, читал вот это сообщение в рассылке debian-sparc, но уже три года прошло, и обстоятельства могли измениться.

 , ,

Bass
()

Как научить Travis CI и/или GitLab CI работать с двумя VCS?

Всем здравствуйте.

Допустим, есть некий git-репозиторий с debian/control, debian/rules и прочими файлами для сборки пакета (на GitHub или GitLab).

И есть некий другой git-репозиторий с собственно исходным кодом («апстрим»), который лежит чёрт-те где (https://savannah.gnu.org/, https://alioth-archive.debian.org/git/, SourceForge и т. д.) и к которому у меня доступ только на чтение.

Вопрос: как научить Travis CI (в случае GitHub) или GitLab CI (в случае GitLab) «наблюдать» по меньшей мере «свой» репозиторий (было бы идеально, чтобы триггеры срабатывали и для коммитов в «апстрим», но нахаляву это маловероятно) и в случае срабатывания триггера выполнять git clone из двух репозиториев с последующей сборкой пакета?

Или, если мне всё же хочется странного, то какими инструментами лучше решать задачу?

  • Соединить в одном репозитории на GitHub/GitLab «апстрим» и дебиановские патчи (через репозиторий с двумя remotes)?
  • То же самое через git submodules?
  • Launchpad PPA?
  • Bintray?

 , , ,

Bass
()

Пропал звук

Всем здравствуйте.

После перезагрузки внезапно пропал звук.

При этом через lspci устройство видно:

00:1f.3 Audio device: Intel Corporation Device a171 (rev 31)
        Subsystem: Lenovo Device 3804
        Flags: bus master, fast devsel, latency 32, IRQ 11
        Memory at a2420000 (64-bit, non-prefetchable) [size=16K]
        Memory at a2400000 (64-bit, non-prefetchable) [size=64K]
        Capabilities: [50] Power Management version 3
        Capabilities: [60] MSI: Enable- Count=1/1 Maskable- 64bit+
        Kernel modules: snd_hda_intel

А вот устройства, нужные alsamixer, по умолчанию отсутствуют:

open("/dev/snd/controlC0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/dev/aloadC0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

Если загрузить snd_hda_intel, то в /proc/asound/cards таки начинаю видеть

 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xa2420000 irq 325

Какого-то рожна модуль перестал грузиться автоматически.

Как это можно продиагностировать? У меня Debian 9 с sysvinit.

 , , ,

Bass
()

Window Maker и флаг «no_focusable» для sun-awt-X11-XFramePeer

Всем здравствуйте.

Есть Window Maker на Debian/Devuan Linux (несколько машин), и есть проблема, поражающая некоторые (не все) Java-приложения.

Суть в том, что для некоторых окон класса sun-awt-X11-XFramePeer (соответствующих экземплярам java.awt.Frame и javax.swing.JFrame), в частности, для окон IntelliJ IDEA (sun-awt-X11-XFramePeer.jetbrains-idea) Window Maker по умолчанию устанавливает флаг no_focusable, в результате чего в IDEA перестают работать выпаддающие меню.

Что характерно, для того же VisualVM (sun-awt-X11-XFramePeer.VisualVM 1.3.9, sun-awt-X11-XFramePeer.Java VisualVM) всё нормально.

В /etc/GNUstep/Defaults/WMWindowAttributes никакого криминала не нашёл. xprop и xwininfo тоже ничего «странного» для окон IDEA не сообщают.

В качестве обходного пути добавил

  "sun-awt-X11-XFramePeer.jetbrains-idea" = { 
    Unfocusable = No; 
  };  

в ~/GNUstep/Defaults/WMWindowAttributes.

Кто-нибудь сталкивался с подобным?

 , , , ,

Bass
()

Вопрос о загрузке SPARC по сети

Всем здравствуйте.

Есть SPARC-машина (Sun Blade 1000/2000) с непонятным состоянием железа, которую пытаюсь загрузить по сети, т. к. «родной» CD-ROM пока починить не удалось. NVRAM-батарея пока, тьфу-тьфу, в порядке, т. е. hostid и MAC-адрес соответствуют друг другу.

Что есть в наличии:

  • dhcpd на Linux
  • там же tftpd (dhcpd настроен так, чтобы опр. MAC-адресу отдавать boot.img для архитектуры SPARC). Дополнительно в /srv/ftfp на boot.img сделаны символические ссылки вида 832405c2 и 832405c2.sun4u (83:24:05:c2 — это hostid сантехники) — на всякий случай, т. к. некоторые инструкции рекомендуют так.
  • проводной Ethernet вроде работает (link up).

При этом все попытки boot net, boot net:dhcp и boot net:bootp не завершаются ничем, диагностической информации на Sun Blade нуль.

На Linux я вижу, что общались с моим dhcpd (dhcpoffer, dhcprequest, dhcpack), а также что у TFTP-сервера какого-то рожна запрашивали файл C0A8001D (он в /srv/tftp тоже есть, предназначался для машины с другим hostid, которая и была успешно загружена), но TFTP-сервер какого-то рожна ответил NAK (1, File not found).

Вопросы:

  • ЧЯДНТ?
  • О каких средствах диагностики (со стороны клиента — OpenBoot — или Linux-сервера) я забыл?

Заранее спасибо.

 , ,

Bass
()

Вопрос по defined в perl5

Всем здравствуйте.

Пытаюсь реанимировать один древний перловый модуль, при этом получаю след. ошибку:

# cpan X11:Athena
...
ERROR from evaluation of /root/.local/share/.cpan/build/X11-Motif-1.1b3-I6Ipt3/Toolkit/Makefile.PL: Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./Makefile.PL line 16.
...

При этом 16-я строка в Makefile.PL выглядит так:

 16 if (defined @defines) {
 17     push(@extra_MakeMaker_flags, 'DEFINE' => join(' ', @defines));
 18 }

а сами @defines определены как

 10 @defines = ();

Я уже в курсе, что «defined is deprecated in perl 5.6.1», но вот сам ни разу не perl-программист.

Вопрос 1:

Как правильно изменить указанный код? Достаточно ли просто убрать defined?

Вопрос 2:

Каков процесс приёма патчей в CPAN в случае, когда автор не обновлял свой модуль вот уж 20 лет как?

 , , ,

Bass
()

/etc/mailcap: просмотр HTML-вложений в Mutt из X11

Всем здравствуйте.

Mutt при просмотре вложений в формате HTML вызывает первый обработчик из /etc/mailcap:

text/html; /usr/bin/sensible-browser '%s'; description=HTML Text; nametemplate=%s.html
# ...
text/html; /usr/bin/chromium %s; test=test -n "$DISPLAY"
# ...
text/html; /usr/bin/lynx -force_html '%s'; needsterminal; description=HTML Text; nametemplate=%s.html
text/html; /usr/bin/lynx -dump -force_html '%s'; copiousoutput; description=HTML Text; nametemplate=%s.html

Хочется, чтобы при просмотре HTML-вложения из Mutt запускался именно первый консольный браузер (скажем, elinks или даже лучше elinks -dump -dump-color-mode 1) вместо условного chromium, даже если переменная DISPLAY определена (если я захочу себе rich user experience, я запущу вместо Mutt что-нибудь другое).

В то же время хочется, чтобы такое поведение касалось только Mutt, т. е., если я в консоли выполняю

run-mailcap %s.html

– чтобы таки запускался обычный браузер. Вопрос: как?

Т. е. есть, конечно, простой обходной путь в виде

alias mutt='DISPLAY= mutt'

– но как-то это неспортивно.

 ,

Bass
()

Добавление дополнительных доменов для поиска (search example.com) при запуске OpenVPN-клиента

Всем здравствуйте.

Собственно, есть Debian и настроенный OpenVPN-клиент.

При запуске OpenVPN с удалённого сервера «прилетает» список дополнительных DNS-серверов и информация о домене, и всё это записывается в /etc/resolv.conf примерно в таком виде:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
search state.gov

Я хочу, чтобы при создании нового сетевого устройства (tun0) в /etc/resolv.conf добавлялись ещё дополнительные поддомены – напр., fpc.state.gov и internal.state.gov.

Сейчас эти самые домены прописаны «ручками» в /etc/resolvconf/resolv.conf.d/{base,original} и в виде dns-search-директив в /etc/network/interfaces, и в результате присутствуют в resolv.conf всегда.

Хочется, чтобы они добавлялись только при старте VPN и, аналогично, удалялись при останове (как это происходит с доменом state.gov).

Читал про dhcp-option, но полной уверенности нет. Кто сталкивался? Кто может поделиться опытом?

Заранее спасибо.

 , ,

Bass
()

Асинхронный ввод/вывод средствами операционной системы

Всем здравствуйте.

Посмотрел я на API богомерзкой .NET – и там в классе System.IO.File есть семейство методов Read...Async, возвращающих task<T> либо от массива байт (byte[]), либо от строки (string). Заводить фоновый поток исполнения (хоть managed, хоть native – неважно) не требуется. На оффтопике всё это работает через т. наз. Overlapped_I/O, и я предполагаю, что в рамках проектов .NET Core и Mono то же самое API правильно портировано на Linux и BSD.

А потом я посмотрел на реализацию java.nio.channels.AsynchronousFileChannel (и наследников) в стандартной библиотеке Java – и там, наоборот, при создании канала ввода/вывода нужно либо предоставить свой фоновый пул потоков (внутри ExecutorService), либо использовать пул по умолчанию.

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

И вот тут напрашивается вопрос – а почему? Почему в Java нельзя было сделать так же, как в .NET? Ведь есть:

  • kernel-accelerated AIO, O_DIRECT и epoll в Linux;
  • I/O Completion Ports в AIX и Solaris;
  • kqueue() и kevent() в BSD и Mac OS X;
  • наконец, POSIX AIO, стандартное для всех ОС.

 ,

Bass
()

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