LINUX.ORG.RU

Сообщения Bass

 

Асинхронная репликация на уровне файловой системы во время резервного копирования

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

Во многих СУБД есть такая штука – называется асинхронная репликация. Это значит, что есть второй экземпляр БД (обычно на отдельном сервере, нередко в отдельном ЦОДе), называемый (в зависимости от производителя) shadow либо, простите за неполиткорректность, slave.

И вот этот slave в реальном времени получает по сети от «мастера» все журналы транзакций и применяет их к своему собственному хранилищу (в начальный момент оба хранилища синхронизированы). В результате состояние slave всегда полностью повторяет состояние «мастера» либо по окончании COMMIT’а, либо с некоторой задержкой (зависит от типа СУБД и от настройки).

А теперь вопрос.

Я, конечно, слышал про RAID 1, mdadm и вот это вот всё.

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

Конечная задача такая: хочу делать бэкап сразу на два внешних диска, чтобы состояние двух (априори чистых) ФС по окончании копирования было идентичным. Конечно, можно сделать последующий rsync с backup0 на backup1, но вот хочется обойтись как раз без него.

 , , ,

Bass
()

Сейчас глянул внутрь PCF-шрифтов на своей машине — а там...

koi10x16b.pcf:

Copyright (C) 1994 Aleksei Rudnev <alex@kiae.su>,
Portions Copyright (C) 1996-1997 by Andrey A. Chernov, Moscow, Russia.

Алексей Руднев из Курчатовского института – это один из создателей ОС ДЕМОС, советского варианта UNIX:

https://secretmag.ru/stories/absolyutnaya-partizanshina-istoriya-sozdaniya-rossiiskogo-interneta.htm

На фото 1988 года он крайний справа.

А Андрей Чернов – это «отец» кодировки KOI8-R.

P. S. Валерия Бардина тоже уже нет в живых.

Кто-нибудь знает, что с Алексеем Рудневым? Последнее интервью с ним датируется примерно 2004 годом.

 , ,

Bass
()

Тихо и незаметно исходный код XEmacs канул в небытие. Или нет?

За все долгие месяцы, пока действовало предупреждение BitBucket, никто так и не удосужился сконвертировать hg в git.

 

Bass
()

Emacs и размер шрифта

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

Периодически ноутбук «кочует» между разными внешними мониторами с разным DPI (от 91 до 162).

Для всех прочих программ достаточно выполнить

xrandr --dpi ...

и изменить значение X-ресурса Xft.dpi.

Исключение составляет Emacs (неважно, с Lucid или GTK+-интерфейсом – оба ведут себя одинаково). Для того, чтобы шрифт в Emacs был сопоставим по размеру с тем же самым шрифтом в терминале (xterm, rxvt, konsole – неважно), приходится увеличивать размер с 12pt до 27pt:

(set-default-font
	"Courier New:size=27:antialias=false")

Из этого можно заключить, что либо размер Xft-шрифта Emacs воспринимает в пикселях, а не в пунктах, либо где-то внутри «зашито» разрешение в 72 DPI.

Проблема наблюдается в версиях 24, 25 и 26 (по меньшей мере).

Как лечить?

 , , emacs-lucid,

Bass
()

Вопрос по Automake

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

В процессе использования GNU Autotools (предыстория) заметил, что иногда, в зависимости от проекта, файл компилируется командой

# Такой вариант используется в базовом amhello
gcc -c -o file.o file.c

а иногда

# Такой вариант используется, напр., в strace и gstreamer
gcc -c -o file.o `test -f file.c || echo $(srcdir)/`file.c

Причём VPATH-сборки корректно работают в обоих случаях – просто точный путь до файла вычисляется либо в стадии конфигурации (./configure), либо в стадии сборки (make).

В документации эта разница никак не описана.

Если копаться в истории, то видно, что второй вариант появился с коммитом dd16cf3641508379a977c37b25fbbae93358bc40 и стал опциональным (в зависимости от значения флага GENERIC) с коммитом 29ade8c79e328cb9f0ed0f132386b4a55027661c.

Копание в исходном коде Automake не приблизило меня к пониманию, за каким рожном появилась такая хитровыдуманная проверка и, главное, что влияет на значение флага GENERIC.

Кто-нибудь может пояснить?

Cast @Harald

 ,

Bass
()

Какие инструменты умеют строить проектную модель по compile_commands.json?

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

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

Я пока что могу назвать лишь 3 инструмента, умеющих указанное:

  • SourceTrail,
  • CLion,
  • Visual Studio Code (через c_cpp_properties.json, очень криво).

Кто ещё?

Может быть, есть какие-л. модули расширения для Anjuta, QtCreator, Code::Blocks, KDevelop, Atom, или CodeLite?

 , , , ,

Bass
()

В каких средствах виртуализации в гостевую VM можно пробросить SLAT (Intel EPT)?

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

Нужно протестировать поведение WSL2 в гостевой Windows 10.

WSL2 работает через Hyper-V.

Hyper-V в гостевой ОС требует не только VT-x pass-through (это умеет VirtualBox 6.1+), но и SLAT (она же Intel EPT) pass-through, и в результате его хрен установишь. VirtualBox, насколько я понял, пока не умеет пробрасывать SLAT, по крайней мере, coreinfo сообщает следующее.

Мне тут камрады настойчиво рекомендуют VMware Player.

У кого-нибудь был с ним положительный опыт в контексте SLAT?

 ,

Bass
()

xrandr: cannot find mode при попытке включения doublescan-режима

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

Есть монитор, который держит до 76 Гц по вертикали, до 96 кГц по горизонтали, и до 205 МГц pixel clock.

И этот монитор, помимо «родного» 1920x1200, может также 1600x1200@75Гц:

  1600x1200 (0xa1) 202.500MHz +HSync +VSync
        h: width  1600 start 1664 end 1856 total 2160 skew    0 clock  93.75KHz
        v: height 1200 start 1201 end 1204 total 1250           clock  75.00Hz

Теперь я пытаюсь добавить режим 800x600 doublescan, эквивалентный указанному выше 1600x1200. Все режимы взяты отсюда.

xrandr --newmode "800x600d" 101.25 800 832 928 1080 600 600 602 625 DoubleScan +HSync +VSync
xrandr --addmode DP1 800x600d

Результирующий видеорежим в выводе xrandr я вижу:

  800x600d (0x1f7) 101.250MHz +HSync +VSync DoubleScan
        h: width   800 start  832 end  928 total 1080 skew    0 clock  93.75KHz
        v: height  600 start  600 end  602 total  625           clock  75.00Hz

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

$ xrandr --output DP1 --mode 800x600d
xrandr: cannot find mode 800x600d
$ xrandr --output DP1 --mode 0x1f7
xrandr: Configure crtc 0 failed

WTF?

 , , ,

Bass
()

ModeLine'ы, DoubleScan и создание картинки типа «pixel-perfect» в DosBox (и не только)

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

Возможно, мой вопрос больше подходит для форумов https://www.vogons.org/, но рискну сначала спросить здесь.

Допустим, есть современный монитор 1920x1200, и есть какая-л. древняя программа (скорее всего, игра), выполняющаяся в эмуляторе (PCem, dosbox, virtualbox или qemu) и имеющая фиксированное разрешение в 320x200, 640x480 или 800x600.

И хочется получить картинку типа «pixel-perfect», чтобы каждая точка исходного изображения отображалась в 4, 9, 16 или 25 точек растра монитора без какой-л. интерполяции (средствами монитора и/или видеокарты). Для 4k-монитора размер такого «олдскульного» пикселя может достигать 10x10.

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

Вопросы:

  1. Лет 20 назад я слышал про т. наз. doublescan-режимы (напр., ModeLine "400x300" 28.1 400 412 444 508 300 304 306 327 +hsync +vsync doublescan). Вопрос: поддерживают ли их X11 и по сей день, или это уже анахронизм?

  2. Почему никто не озаботился такими понятиями, как triplescan, quadruplescan и т. д.? Существует ли такое в природе?

  3. Допустим, виртуальные 800x600 из фактических 1600x1200 (на мониторе 1920x1200) получить можно с помощью пресловутого doublescan, но вот можно ли получить виртуальные 640x480 из фактических 1280x960 таким образом, чтобы сверху и снизу было точно «отрезано» по горизонтальной полосе шириной в 120 точек (960+120+120=1200)? Формализуем ли такой видеорежим средствами X11 ModeLine?

  4. Имеет ли какой-л. смысл при использовании современных мониторов полярность сигналов вертикальной и горизонтальной синхронизации (+HSync, -HSync, +VSync, -VSync)?

  5. Какие инструменты посоветуете для тестирования/отладки нестандартных видеорежимов, кроме старого доброго xvidtune? Увы, xrandr, lxrandr и arandr, кажется, не годятся, потому как оперируют лишь тем, что зашито у монитора в EDID.

  6. Что из технических статей на тему можно почитать?

Спасибо.

 , ,

Bass
()

Ищу CAD-систему для создания трёхмерного проекта деревянного дома

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

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

Есть ли у кого-нибудь успешный опыт проектирования дома, используя не какой-нибудь дорогущий ArchiCAD под оффтопик, а таки Linux и таки СПО?

Как минимум, хочется иметь «трёхмерный чертёж»,

  • который можно «повертеть» со всех сторон,
  • который можно «распилить» на проекции и экспортировать в DWG, дабы отдать прорабу, и
  • на котором можно указать размеры (и измерить виртуальной линейкой расстояние между двумя произвольными точками).

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

Возможно, программы «минимум» и «максимум» решаются разными инструментами (как выяснилось, есть люди, проектирующие дома в Blender’е – там с текстурами и освещением всё норм).

Я пока что успел посмотреть на LibreCAD (но он, кажется, умеет оперировать сугубо двумерными моделями) и на FreeCAD и Sweet Home 3D.

Последние два кажутся неплохими инструментами, и я пытаюсь понять, стоит ли инвестировать в их освоение своё время.

 , , ,

Bass
()

Как обновить DragonFly BSD с версии 5.0 до хотя бы 5.2?

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

Собственно, ${subj}.

Есть старая (5.0.1) виртуалка 2017 года. Пытаюсь обновить список пакетов:

$ sudo pkg update
Updating Avalon repository catalogue...
pkg: Repository Avalon load error: access repo file(/var/db/pkg/repo-Avalon.sqlite) failed: No such file or directory
pkg: http://mirror-master.dragonflybsd.org/dports/dragonfly:5.0:x86:64/LATEST/meta.txz: Not Found
repository Avalon has no meta file, using default settings
pkg: http://mirror-master.dragonflybsd.org/dports/dragonfly:5.0:x86:64/LATEST/packagesite.txz: Not Found
Unable to update repository Avalon
Error updating repositories!

И это верно, потому как по адресу http://mirror-master.dragonflybsd.org/dports/ лежат пакеты для версий с 5.2 по 5.10.

В /usr/local/etc/pkg/repos/df-latest.conf у меня запись вида:

Avalon: {
        url             : http://mirror-master.dragonflybsd.org/dports/${ABI}/LATEST,
        mirror_type     : NONE,
        signature_type  : NONE,
        pubkey          : NONE,
        fingerprints    : /usr/share/fingerprints,
        enabled         : yes 
}

– т. е. предполагается, что строчка dragonfly:5.2:x86:64 автоматически должна подставиться вместо ${ABI}.

 ,

Bass
()

Вышли Enlightenment 0.24.2 и Terminology 1.8.0

 , ,

Bass
()

amixer: определить, включён ли канал

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

Вот прямо сейчас amixer для канала, например, Master, выводит следующее:

$ amixer get Master
Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 87
  Mono: Playback 87 [100%] [0.00dB] [on]

Соотв., я могу определить, включён ли канал (mute/unmute), вот так:

amixer get Master | tail -n1 | grep -qF '[on]'

Вопрос: есть ли более простой способ? Я не нашёл способа воздействовать на код возврата amixer.

 ,

Bass
()

Пакеты в Debian, разница между Provides и Replaces

Здравствуйте, все.

Собственно, ${subj}.

Если я хочу заменить стандартный пакет foo своим колхозным пакетом foo-alt (те же яйца, только с другими ключами сборки) и при этом не сломать тех, кто зависит от foo, то в чём для меня разница между Provides и Replaces?

И стоит ли мне в этом случае явно указывать, что foo-alt Conflicts: foo?

Перемещено leave из development

 

Bass
()

Как стать Sponsored Maintainer в Debian, если...

… если сопровождающий пакета забил болт?

Ну т. е. когда (формально) WNPP заводить не положено?

Курю https://wiki.debian.org/SponsoredMaintainer – и не понимаю.

Помогите, а?

 

Bass
()

Говорящая голова Горбачёва, ггг

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

https://youtu.be/Grd6Hdwkdbw

 , ,

Bass
()

xdg-open, файлы *.desktop и %u в поле Exec

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

Хочу desktop entry с вот такой строкой запуска:

seamonkey -remote "OpenUrl(%u, new-tab)"

ну или хотя бы

seamonkey -remote OpenUrl(%u)

В то же время отладка /usr/bin/xdg-open показывает, что в результате вызова /usr/bin/xdg-open someurl запускается

/usr/bin/seamonkey OpenUrl(%u) someurl

т. е. %u, не отделённый пробелами, не вычисляется и не подставляется.

Чтение спецификации ни к чему не приводит.

Как решить?

 

Bass
()

Особенности маргинальных дистрибутивов

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

Нынче наблюдаю интересное. Пытаюсь собрать пакет, который:

  1. не «форкнут» в Devuan (т. е. они тащат бинарники напрямую с debian.org) и
  2. при сборке требует libsystemd-dev.
# aptitude build-dep vlc
The following NEW packages will be installed:
  libsystemd-dev libsystemd0{a} 
0 packages upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 322 kB/652 kB of archives. After unpacking 1665 kB will be used.
The following packages have unmet dependencies:
 libelogind-dev-doc : Conflicts: libsystemd-dev but 241-7~deb10u3 is to be installed
 libelogind0 : Conflicts: libsystemd0 but 241-7~deb10u3 is to be installed
 libelogind0:i386 : Conflicts: libsystemd0 but 241-7~deb10u3 is to be installed
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libsystemd-dev [Not Installed]                     
2)     libsystemd0 [Not Installed]                        



Accept this solution? [Y/n/q/?] 
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

И всё. Т. е. до тех пор, пока ты просто пользователь, в Devuan всё шоколадно. Но как только ты хочешь самостоятельно пересобрать пакет, с некоторой вероятностью что-то перестанет работать. YMMV, как говорится.

Что характерно, apt-get совсем тупой и предлагает мне дичь:

# apt build-dep vlc
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 builddeps:vlc : Depends: libsystemd-dev but it is not going to be installed
 kio : Depends: libkf5auth5 (>= 4.96.0) but it is not going to be installed
 libkf5configwidgets5 : Depends: libkf5auth5 (>= 4.96.0) but it is not going to be installed
 libkf5kiocore5 : Depends: libkf5auth5 (>= 4.96.0) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

И это гонево, потому что всякие kio и libkf5auth5 у меня установлены. Ну а aptitude отличается умом и сообразительностью, да.

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

 ,

Bass
()

Automake, макроопределения для компиляции

Всем привет.

TL;DR: пытаюсь открыть исходники strace в как проект в NetBeans. И для этих целей скармливаю NetBeans вывод make -wnk, который среда анализирует.

И вот тут проблема.

Нередко строка компиляции имеет вот такой вид:

gcc -DHAVE_CONFIG_H   -I./linux/x86_64 -I./linux/x86_64 -I./linux -I./linux -I. -I.     -DIN_MPERS -DMPERS_IS_mx32 -I./mpers-mx32  -Wall -Wempty-body -Wformat-security -Wignored-qualifiers -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op -Wmissing-parameter-type -Wnested-externs -Wold-style-declaration -Wold-style-definition -Woverride-init -Wsign-compare -Wtype-limits -Wwrite-strings -Werror   -g -O2 -MT libmpers_mx32_a-v4l2.o -MD -MP -MF .deps/libmpers_mx32_a-v4l2.Tpo -c -o libmpers_mx32_a-v4l2.o `test -f 'v4l2.c' || echo './'`v4l2.c

Т. е. файл исходного кода определяется как

`test -f 'file.c' || echo './'`file.c

Естественно, среда уже не может разобрать такое и «ломается» (файл не включён в проектную модель).

В исходных Makefile.am такого нет – только в Makefile.in, сгенерённых automake.

Поиск приводит к /usr/share/automake-1.16/am/depend2.am, содержащему вот такие правила:

?!GENERIC?      %VERBOSE%%COMPILE% -MT %OBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% -o %OBJ% %SOURCEFLAG%`test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%
?-o?    %VERBOSE-NODEP%%COMPILE% %-c% %-o% %OBJ% %SOURCEFLAG%`test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%
?!-o?   %VERBOSE-NODEP%%COMPILE% %-c% %SOURCEFLAG%`test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%
?!GENERIC?      %VERBOSE%%LTCOMPILE% -MT %LTOBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% -o %LTOBJ% %SOURCEFLAG%`test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%
?!GENERIC?      %VERBOSE-NODEP%%LTCOMPILE% %-c% -o %LTOBJ% %SOURCEFLAG%`test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%

У меня два вопроса к общественности:

  1. Какой смысл данного финта ушами? Если бы было test -f && echo, то я бы предположил, что файл из локального каталога (если есть) должен иметь более высокий приоритет, чем тот же файл из VPATH. А в том виде, как есть, – непонятно.
  2. Кажется, я не в каждом проекте, использующем autotools, встречал такое. Т. е. есть проекты на autotools, которые тот же NetBeans открывает без проблем. Навскидку сейчас пример не приведу, но, может быть, есть кто-то, кто сможет объяснить, почему? Могут ли существовать проекты, использующие autoconf без automake? Часто ли такое встречается в природе?

 , ,

Bass
()

После обновления на Devuan Beowulf не работает vlc при QT_STYLE_OVERRIDE=gtk2

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

После обновления на Devuan 3 (Beowulf, эквивалент Debian 10 Buster) перестал запускаться vlc. Причём проблема именно в Qt UI, т. е. cvlc запускается нормально, а vlc – нет.

При запуске пишет:

VLC media player 3.0.8 Vetinari (revision 3.0.8-0-gf350b6b5a7)

(vlc:1215): GLib-GObject-WARNING **: 15:54:22.365: cannot register existing type 'GtkBuildable'

(vlc:1215): GLib-GObject-CRITICAL **: 15:54:22.365: g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE (interface_type)' failed

(vlc:1215): GLib-CRITICAL **: 15:54:22.365: g_once_init_leave: assertion 'result != 0' failed

(vlc:1215): GLib-GObject-WARNING **: 15:54:22.365: cannot register existing type 'GtkWidget'

(vlc:1215): GLib-GObject-WARNING **: 15:54:22.365: cannot add class private field to invalid type '<invalid>'

(vlc:1215): GLib-GObject-WARNING **: 15:54:22.365: cannot add private field to invalid (non-instantiatable) type '<invalid>'

– и никакого UI не появляется. В Debian Stretch/Devuan ASCII всё норм.

Выяснилось, что всему виной QT_STYLE_OVERRIDE и QT_QPA_PLATFORMTHEME, выставленные в gtk2.

Причём, что характерно:

  1. При любом другом значении QT_STYLE_OVERRIDE (plastique, fusion, qtcurve, gtk3, cde, motif, windows, cleanlooks) интерфейс vlc таки отрисовывается.
  2. Проблема не зависит от фактической темы оформления GTK2.
  3. Другие сложные интерфейсы (Qt Assistant, Qt Designer) работают без проблем.

Всё это на qt5-style-plugins 5.0.0+git23.g335dbec-2+b17 и Qt 5.11.3+dfsg1-1+deb10u2.

Народ, у кого 10-й Debian – можете протестировать у себя (QT_STYLE_OVERRIDE=gtk2 QT_QPA_PLATFORMTHEME=gtk2 vlc)?

 , , ,

Bass
()

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