victor_sudakov: (Default)
Насколько я понял, существует 3 способа подключить Google Calendar от моей учетной записи Google к календарю Thunderbird.

1. Завести в Thunderbird мою почту Gmail, в этом случае календари и задачи Google подключатся автоматически. Я этот способ не пробовал, так как я не использую Thunderbird для Gmail и не собираюсь. Для полноты информации привожу последовательность действий.

2. Использовать дополнение к Thunderbird "Provider for Google Calendar". К сожалению оно довольно кривое, имеет проблемы с синхронизацией задач и другие проблемы, в частности в подключенный таким образом Google Calendar нельзя добавить приглашение на встречу из E-mail, возникает ошибка "No writable calendars are configured for invitations, please check the calendar properties". Календарь при этом точно не Read Only, потому что обычным способом в него добавить событие можно.

3. Третий способ подсмотрен в https://support.mozilla.org/en-US/questions/1304356#answer-1368791

You can add a Google calendar to TB without add-ons, as a CalDAV calendar, by entering this for the Location:
https://apidata.googleusercontent.com/caldav/v2/myname@gmail.com/events

Enter your email address for the Username, and allow cookies in Options/Privacy & Security, for OAuth2 authentication.

К сожалению, третий способ не позволяет синхронизировать задачи (Google Tasks) с Thunderbird. Может кто знает, как добавить синхронизацию задач к третьему способу?

UPD 4. Есть еще описание на https://support.mozilla.org/ru/kb/sozdanie-novyh-kalendarej#w_v-seti-podkliuchenie-k-onlain-kalendariam , где говорится, как включить доступ к календарю по ссылке и скопировать эту ссылку. К сожалению данный способ тоже не даёт доступа к Задачам.
victor_sudakov: (Default)

После обновления exim до exim-4.94_4 и FreeBSD до 12.2 внезапно перестал работать av_scanner по TCP. В логе exim сабжевое сообщение, clamd на 192.168.x.x вообще никаких данных от exim не получает.

При этом просто зайти "telnet 192.168.x.x 3310" и пообщаться с clamd вполне работает.

Решение: отключил TCP Fast Open на хосте с exim:
sysctl net.inet.tcp.fastopen.client_enable=0
и всё заработало.

Технические подробности

victor_sudakov: (Default)

Вы обратили внимание, что улицы на панорамах Яндекс Карт причудливым образом искажены? Создается впечатление, что улица делает плавный поворот или изгиб, тогда как на самом деле она на этом участке совершенно прямая (я-то знаю, какая она на самом деле, полвека живу в Томске).

На панорамах Google Maps подобного безумного эффекта нет: крути панораму как хочешь, прямая улица и останется прямой.

victor_sudakov: (Default)
А вот причина, по которой из Firefox исчез "Print to LPR" https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=231110

Нашелся кто-то слишком умный и оторвал, потому что якобы "lpr cannot accept PDF files". На самом деле нет, lpr принимает то, чему его научишь.

Современный ghostscript принимает PDF. Большие офисные сетевые принтера - тоже, по крайней мере на прошлой работе я приносил PDF принтеру на флешке и по FTP заливал, значит и по LPR принять сможет.

Хорошая новость - в GIMP "Print to LPR" не оторвали, по крайней мере пока.
victor_sudakov: (Default)
Сервис проверки лотерейных билетов "Столото" по QR-коду (http://stolo.to/qr бла бла) уже третий день не работает c "504 Gateway Time-out". Стыд однако.
victor_sudakov: (Default)
Искренне надеюсь, что это всё же какое-то моё непонимание или незнание темы, а не конструктивный недостаток во FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242744

В линухах оно как, кто знает или может проверить? Тоже DF флаг принудительно ставится на ESP? И как тогда работает простой IPSec transport mode между двумя хостами?

Между FreeBSD 11 и Windows 7 транспортный режим работал без проблем, ssh, FTP и прочее TCP ходило. Жаль что не осталось пакетных дампов. Предполагаю, что Windows знает, что надо в такой ситуации уменьшить MSS.

UPD Специально проверил, Windows Server 2012 также генерирует в транспортном режиме ESP пакеты с флагом DF. Но работе TCP это не мешает. Видимо неправильным будет предлагать решение для FreeBSD с принудительным снятием флага DF с ESP. Тем более в свете IPv6, в котором собственно этого флага и нет: если отправитель не позаботился фрагментировать пакет и вставить Fragment extension header, то на транзитном устройстве уже ничего с этим поделать нельзя.
victor_sudakov: (Default)
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241474
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241475
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241531
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241684

И пятая проблема, связанная с autofs частично (карта special_media использует fstyp):
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242225

FreeBSD и съемные носители изначально не дружат... 21 век на дворе, стыдно.

Кто бы ещё подсказал, как оторвать начисто автомонтирование в mate, которое всё время путается под ногами.
victor_sudakov: (Default)
Сабж (linuxmint-19.1-cinnamon-64bit.iso). Дожили.

Read more... )

Кто виноват и что делать?

Попытка насильно установить "apt-get install -f default-dbus-session-bus" или dbus-user-session не помогает:
Read more... )
victor_sudakov: (Default)
Алгоритм взаимодействия apcupsd с системой при её выключении не менялся уже 17 лет. По умолчанию apcupsd запускается с ключом --kill-on-powerfail, что означает: при исчерпании заряда аккумулятора в ИБП, послать ИБП команду "уснуть" и одновременно запустить процедуру doshutdown из /usr/local/etc/apcupsd/apccontrol. В ИБП обычно предусмотрена задержка (так называемый grace delay) 10-40 секунд исполнения команд "выключиться" и "уснуть". В этом месте начинается race: что случится раньше, shutdown успеет корректно завершиться или ИБП выключится?

В прежние времена, наверное, это всех устраивало, потому что выключение системы проходило быстро и shutdown успевал всё завершить до выключения питания. Хотя напомню, что значение по умолчанию rcshutdown_timeout="90" заведомо больше grace delay любого ИБП. Так что race condition никуда не девался на самом деле.

В нынешнее время с распространением виртуальных машин во время выключения хоста включено время выключения виртуалок, которое может быть весьма значительным. Я например устаналиваю rcshutdown_timeout="240" и kern.init_shutdown_timeout="300" и то виндовые VM выключиться не успевают. Понятно, что в UPS grace delay не укладываемся точно.

Поэтому предлагаю новый алгоритм выключения системы посредством apcupsd, и открыл на эту тему ПР https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=237600 Суть нового (не очень нового, на самом деле, в Linux используется подобный) алгоритма:

Запускаем apcupsd с ключом --term-on-powerfail
apcupsd_enable="YES"
apcupsd_flags="--term-on-powerfail"

это значит после запуска процедуры shutdown и создания флага /var/run/powerfail apcupsd должен выйти и не путаться пока под ногами.

А в конце /etc/rc.shutdown вписываем строчку
test -f /var/run/powerfail && /usr/local/sbin/apcupsd --hibernate
или
test -f /var/run/powerfail && /usr/local/sbin/apcupsd --power-off

(кому как удобнее, в зависимости от требуемого поведения ИБП после восстановления питания).

Это означает, что только после отработки всех rc.d скриптов с параметром stop в ИБП будет послана команда "уснуть" или "выключиться" соответственно.

UPD A brief summary in English.

My final conclusion. The default way apcupsd is started by the port (with --kill-on-powerfail) is wrong. You cannot rely on the UPS grace shutdown delay even with the default setting of rcshutdown_timeout="90", while using virtual machines necessitates making rcshutdown_timeout even longer. A race between the UPS grace delay and the FreeBSD shutdown procedure must be eradicated.

The only feasible way of doing it is:

1. Starting apcupsd with apcupsd_flags="--term-on-powerfail" so that the daemon exits once it has started the doshutdown procedure and does not send any commands to the UPS at this stage.

2. Putting the line
"test -f /var/run/powerfail && /usr/local/sbin/apcupsd --hibernate"
or
"test -f /var/run/powerfail && /usr/local/sbin/apcupsd --power-off"

(depending on the desired behaviour of the UPS after the mains is restored) at the very end of the /etc/rc.shutdown script, after the "Insert other shutdown procedures here" line.

Thus the shutdown procedure started by "apcupsd --term-on-powerfail" can proceed at its own tempo, with "apcupsd --hibernate" being called when all the daemons and VMs have been safely shut down.

UPD 2. Ещё предлагают такой способ: http://www.wfido.ru/m/RU.UNIX.BSD/grosbein.net+c3b53b4f который призван исключить достаточно маловероятную, но неприятную ситуацию, если питание успело восстановиться после завершения apcupsd, но до killpower.
victor_sudakov: (Default)
bhyve и некоторые другие гипервизоры (похоже что VirtualBox тоже) в режиме EFI не поддерживают эмуляцию NVRAM для сохранения efi variables между перезагрузками. Это может привести к проблеме: гостевая ОС установится штатно, а после перезагрузки получаем сообщение от EFI наподобие
Boot Failed. EFI DVD/CDROM
Failed to set MokListRT: Invalid Parameter
Failed to open \EFI\BOOT\grubx64.efi - Not Found
Failed to load image \EFI\BOOT\grubx64.efi: Not Found
start_image() returned Not Found
Boot Failed. EFI Misc Device
.

Это происходит оттого, что инсталлятор при установке ОС сохранил в efi variables путь к загрузчику (например "\EFI\centos\grubx64.efi"), а после перезагрузки гостевой системы настройка забылась и гипервизор начинает пытаться грузить нечто другое, что заложено в него по умолчанию или по эвристике.

Решений может быть несколько.

Первое тупое. Подмонтировать как-нибудь efi-раздел установленной гостевой ОС (например из другой виртуалки, или из LiveCD в той же виртуалке) и положить нужный загрузчик в то место, где его ищет и не может найти гипервизор: например подложить его в качестве "\EFI\BOOT\BOOTX64.EFI", или как в примере выше, скопировать из \EFI\centos\grubx64.efi в \EFI\BOOT\grubx64.efi.

Второе более интересное. После неудачной загрузки дождаться EFI interactive shell и создать файл startup.nsh, это типа такой autoexec.bat:

fs0:
edit startup.nsh


А в нем уже прописать тот загрузчик, который нужен гостевой ОС, например строчку "\EFI\centos\grubx64.efi".

Третье фантастическое. Запинать авторов UEFI-EDK2 firmware реализовать поддержку сохранения efi variables между перезагрузками.

UPDATE. Вот на ту же тему https://www.centos.org/forums/viewtopic.php?p=278745#p278745

UPDATE 2. А инсталлятор FreeBSD уже сразу создает в EFI-разделе startup.nsh c нужным загрузчиком. Молодцы!
victor_sudakov: (Default)
1. При попытке загрузить в Drupal 8 модули или темы через админский веб-интерфейс возникает приглашение ввести учетные данные для доступа к коду сайта по FTP (!).

Решение (при условии, что пул php-fpm работает от пользователя www):
chown -R www:www /usr/local/www/drupal8/modules /usr/local/www/drupal8/themes

2. При попытке загрузить в Drupal 8 модули или темы через админский веб-интерфейс возникает "AJAX HTTP ошибка, полученный код HTTP 403" с невнятным упоминанием "/core/authorize.php/core/authorize.php?batch=1...". Это значит, вы делали настройку связки drupal+nginx+php-fpm по статье https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/ , но натолкнулись на баг, описанный в https://pantheon.io/blog/update-your-nginx-config-drupal-8. Но решение в тексте статьи описано неправильно, правильное решение есть в комментах, и заключается в строчке
rewrite ^/core/authorize.php/core/authorize.php(.*)$ /core/authorize.php$1;
прямо в блоке server{} перед 
   location ~ \..*/.*\.php$ {
        return 403;
    }
victor_sudakov: (Default)
В /usr/sbin/service в конце присутствует "env -i":
for dir in /etc/rc.d $local_startup; do
        if [ -x "$dir/$script" ]; then
                [ -n "$VERBOSE" ] && echo "$script is located in $dir"
                exec env -i HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin $dir/$script $*
        fi
done

поэтому если запускать сервис вручную через "service mydaemon start", то все переменные среды будут очищены, а если запускать через /usr/local/etc/rc.d/mydaemon start", то все переменные среды рута попадут в окружение mydaemon, т.к. в самих rc-скриптах никакая очистка не производится.

По-моему это в некотором роде уязвимость. Сейчас активно обсуждается в https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235185
victor_sudakov: (Default)
Ночью в пятницу свичи
Превратились в кирпичи.
Смотришь в конфиг - как же так?
В "show start" пиндосский флаг.

Тут админы у свичей
Принимая корвалол
Отложили кирпичей
На хороший firewall.

Не могу по случаю не вспомнить историю про хакера и солонку: https://xakep.ru/2006/12/16/35784/
victor_sudakov: (Default)
Последовательность действий для установки FreeBSD (RootOnZFS) в качестве второй (третьей, четвертой... ) операционки. Система получается beadm-ready.

Важно: man zfsboot и статьи https://wiki.freebsd.org/RootOnZFS/ZFSBootPartition , https://wiki.freebsd.org/RootOnZFS/ZFSBootSlice содержат ошибку: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=226714 Если делать по написанному в мане (создавать BSD label в разделе, "gpart create -s BSD"), то FreeBSD грузиться не будет.

Ошибка найдена благодаря [livejournal.com profile] dadv, см. также https://docs.freebsd.org/cgi/getmsg.cgi?fetch=22620+0+current/freebsd-questions

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

Сам пример установки:
#!/bin/sh

# sysctl kern.geom.debugflags=0x10 # should not be necessary

DISK=da1
POOL="zroot-test3"
NEWSYSTEM=newsystem
SLICE=2

partition() {
	gpart create -s mbr ${DISK}
	gpart add -t fat32 -s 1G ${DISK}
	gpart add -t freebsd -s 2G -i ${SLICE} ${DISK}
	gpart set -a active -i ${SLICE} ${DISK}
}

bootcode() {
	gpart bootcode -b /boot/boot0 ${DISK}
	dd if=/dev/zero of=/dev/${DISK}s${SLICE} count=2
	dd if=/boot/zfsboot of=/dev/${DISK}s${SLICE} count=1
	dd if=/boot/zfsboot of=/dev/${DISK}s${SLICE} iseek=1 oseek=1024

}

zfscreate() {
	zpool create -m none -R /${NEWSYSTEM} ${POOL} ${DISK}s${SLICE}

	zfs create -o mountpoint=none ${POOL}/ROOT
	zfs create -o mountpoint=/ ${POOL}/ROOT/default

	zfs create -o mountpoint=/usr -o canmount=off ${POOL}/usr
	zfs create -o mountpoint=/var -o canmount=off ${POOL}/var

	zfs create -o mountpoint=/tmp ${POOL}/tmp
	zfs create -o mountpoint=/usr/home ${POOL}/usr/home
	zfs create -o mountpoint=/usr/src ${POOL}/usr/src
	zfs create -o mountpoint=/usr/ports ${POOL}/usr/ports
	zfs create -o mountpoint=/var/audit ${POOL}/var/audit
	zfs create -o mountpoint=/var/crash ${POOL}/var/crash
	zfs create -o mountpoint=/var/log ${POOL}/var/log
	zfs create -o mountpoint=/var/mail ${POOL}/var/mail
	zfs create -o mountpoint=/var/tmp ${POOL}/var/tmp

	zfs create -V 1G -o org.freebsd:swap=on ${POOL}/swap

	zpool set bootfs=${POOL}/ROOT/default ${POOL}
}

clone() {
	cd /${NEWSYSTEM} || exit 3
	#sleep 10
	dump -0af - / | restore -ryf - || exit 3 
	mv etc/fstab etc/fstab.bak
	echo '# empty' > etc/fstab
	rm etc/hostid
	rm etc/ssh/*key*
	echo 'zfs_enable="YES"' >> etc/rc.conf.local 
	echo 'zfs_load="YES"' >> boot/loader.conf 
	cd /root
}

zfsexport() {
	zpool export ${POOL}
}

partition
bootcode
zfscreate
clone
zfsexport



UPD: моя попытка написать новую статью для FreeBSD Wiki: https://hg.sr.ht/~vas/FAQ/browse/default/FreeBSD/Installing_FreeBSD_Root_on_ZFS_using_FreeBSD-ZFS_partition_in_a_FreeBSD_MBR_Slice.txt
victor_sudakov: (Default)
Как сделать сабж таким образом, чтобы коммит-логи (в кодировке koi8-r) нормально перенеслись в hg? Возможно что-то надо написать в .hgrc, но что именно?

Гугление не очень помогло. Есть намеки, что cvsps можно пропустить через pipe, но не понял как.

UPD

Пришлось перекодировать весь CVS репозиторий в UTF-8, выставить локале ru_RU.UTF-8 и после этого уже запускать "hg convert". А потом перекодировать файлы в рабочей копии обратно в KOI8-R и коммитить это как изменение.

UPD2

https://bz.mercurial-scm.org/show_bug.cgi?id=5597

UPD2

Один японец написал hook, который проблему решает: https://bitbucket.org/foozy/hghook-cvslog-transcoder/overview Я проверил - работает.
victor_sudakov: (Default)
Забавный глюк словил на андроиде:

Скажите null
victor_sudakov: (Default)
news/husky-sqpack теперь в официальном дереве портов. Мелочь, а приятно.
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200481
victor_sudakov: (Default)
После очередного обновления портов mutt стал ругаться "mailbox is readonly" на все ящики.

Лечение: "chgrp mail /usr/local/bin/mutt_dotlock" (должен быть setgid mail, а ставится wheel).
victor_sudakov: (Default)
Интересен не баг сам по себе, а то что найден котом :-) https://bugzilla.gnome.org/show_bug.cgi?id=758032

Почему-то на FreeBSD повторить не получилось, хотя у меня gdm-3.16.2 числится как vulnerable.
victor_sudakov: (Default)
На примере установки CommuniGate Pro, который производитель выкладывает под FreeBSD в пакете старого образца.

pkg_add ~sudakov/CGatePro-FreeBSD8-Intel.tgz
sed -i .bak '/srcdir/d' /var/db/pkg/CGatePro-6.0.11/+CONTENTS
pkg2ng
rm -rf /var/db/pkg/CGatePro-6.0.11/


sed нужен, чтобы убрать из описания пакета строчки непонятного назначения "@srcdir /tmp/CGBUILD", на которые ругается pkg2ng.

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197559

http://mx.ru:8100/Lists/CGatePro/Message/20007.html?Skin=Russian

Profile

victor_sudakov: (Default)
Виктор Судаков

December 2024

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 18th, 2025 02:51 pm
Powered by Dreamwidth Studios