16 ноября 2019

Релиз jtv2xmltv 0.2.1

Сегодня я выпустил новый релиз 0.2.1 для моей утилиты jtv2xmltv - конвертер электронной программы передач из формата JTV в XMLTV.

Список изменений:
  • После нескольких жалоб на путаницу с заголовком JTV я добавил поддержку альтернативного заголовка.
  • Появилась поддержка выбора кодировки для содержимого EPG (по-умолчанию выбирается CP1251). Кодировка задается опциями -e или --encoding.
  • Поправил зависимости пакета для Debian.
  • Добавил Debian copyright и страницу man - теперь Lintian не выводит ошибок или предупреждений.
Прогнал тест конвертации http://dkt.iptvportal.ru/jtv.zip и http://www.teleguide.info/download/new3/jtv.zip в XMLTV на версиях Python 2.7, 3.5, 3.6, 3.7 и 3.8.

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

02 ноября 2019

Собрал acme.sh для Debian

Какое-то время назад крон, который обновляет сертификаты Let's Encrypt, стал выдавать ошибку вида:

Renew: 'www.tataranovich.com'
Multi domain='DNS:tataranovich.com'
Getting domain auth token for each domain
Getting webroot for domain='www.tataranovich.com'
Getting new-authz for domain='www.tataranovich.com'
The new-authz request is ok.
new-authz error: {"type":"urn:acme:error:badNonce","detail":"JWS has no anti-replay nonce","status": 400}
Please check log file for more details: le-issue.log
Error renew www.tataranovich.com.

Сегодня занялся этой проблемой вплотную. Поиск вывел на описание ошибки urn:acme:error:badNonce (JWS has no anti-replay nonce). Для работы с сертификатами LE я использую acme.sh. И чтобы решить проблему достаточно обновить версию.

Собрал Debian пакет для acme.sh 2.8.3 и залил его в мой репозитарий для Debian Stretch и Debian Buster.

Описание релиза 2.8.3 на GitHub:
Letsencrypt CA recent changed the CDN provider, which resulted in hanging issues. Any downstream package should update. This is important.
После установки новой версии сертификаты обновились без проблем.

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

UDisks2: перестали монтироваться шифрованные LUKS носители в Debian Buster

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

$ gvfs-mount -d /dev/sdb2
...
gio: /dev/sdb2: Error unlocking /dev/sdb2: The function 'bd_crypto_luks_open_blob' called, but not implemented!

Немного поиска и я нашел описание проблемы.

$ sudo aptitude install libblockdev-crypto2+M
$ sudo systemctl restart udisks2

После этого флешка нормально смонтировалась. Проблема проявилась из-за отключенной установки рекомендованных зависимостей APT::Install-Recommends=false.

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

Неслабо лихорадит GCP

Больше суток длится инцидент, связанный с Compute Engine в облаке Google. Из-за него деградировали многие сервисы.


Судя по описанию "застряли" операции по созданию/удалению сетей и подсетей. Если инфраструктура статичная, то по-идее зацепить не должно.

Текущий статус можно увидеть на странице Google Cloud Status Dashboard.

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

14 октября 2019

Установка Xfce 4.14 в Debian Buster


Xfce 4.14 не успел войти в релиз Debian Buster и доступен только через testing. Список изменений Xfce 4.14 внушительный.


Меня заинтересовали вот эти:
  • Feature: Add a switch user button to the logout dialog (Bug #10345)
  • Feature: Hybrid Sleep support - "hibernate" and suspend the system
  • Feature: Color Profiles (colord frontend)
  • Feature: Display Profiles, allowing for saving/restoring display configurations
  • Feature: Make inhibition affect dimming and inactivity action (Bug #14687

03 октября 2019

Еще три сертификата по Google Cloud Platform

В сентябре ездил в Киев чтобы пройти дополнительную сертификацию по Google Cloud Platform.

Годом ранее я получил сертификат Professional Cloud Architect, а в этом году я сдавал сразу три экзамена:
Самым сложным для меня оказался Network. Security был средней сложности - достаточно разобраться в Cloud Identity и Cloud KMS.

Cloud Engineer многие считают слишком простым и я планировал сдать его "на сдачу" от Cloud Architect, но этот экзамен оказался очень и очень практическим. Если не нет опыта работы с утилитами gcloud, gsutil, kubectl и GCP Console, то сдать будет непросто.

Подготовка к экзаменам заняла примерно полтора месяца по вечерам. В итоге сдал все экзамены с первой попытки.


В этом году Google запустил публичный каталог сертификатов по GCP. Можно посмотреть у кого какие есть сертификаты.

Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

Падает TVHeadend при импорте программы передач

Вчера ночью упал TVHeadend. Поначалу я не придал этому значения, но после попытки перезапуска ему лучше не стало.

Oct  2 04:00:01 server systemd[1]: Stopping tvheadend.service...
Oct  2 04:00:02 server tvheadend[2227]: epgdb: saved
Oct  2 04:00:02 server tvheadend[2227]: epgdb:   brands     0
Oct  2 04:00:02 server tvheadend[2227]: epgdb:   seasons    0
Oct  2 04:00:02 server tvheadend[2227]: epgdb:   episodes   21303
Oct  2 04:00:02 server tvheadend[2227]: epgdb:   broadcasts 21303
Oct  2 04:00:02 server tvheadend[2227]: STOP: Exiting HTS Tvheadend
Oct  2 04:00:02 server tvheadend[27507]: Stopping Tvheadend: tvheadend.
Oct  2 04:00:02 server systemd[1]: Stopped tvheadend.service.
Oct  2 04:00:03 server systemd[1]: Starting tvheadend.service...
Oct  2 04:00:03 server tvheadend[27599]: Starting Tvheadend: tvheadend.
Oct  2 04:00:03 server systemd[1]: Started tvheadend.service.
Oct  2 04:00:03 server tvheadend[27605]: CRASH: Signal: 6 in PRG: /usr/bin/tvheadend (3.4.28~geb79aee~wheezy) [48254f97c14283a370187739d8ce68a10b6d9d9c] CWD: /
Oct  2 04:00:03 server tvheadend[27605]: CRASH: Fault address 0x7200006bd5 (N/A)
Oct  2 04:00:03 server tvheadend[27605]: CRASH: Loaded libraries: linux-vdso.so.1 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/x86_64-linux-gnu/libavahi-common.so.3 /usr/lib/x86_64-linux-gnu/libavahi-client.so.3 /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 /lib/x86_64-linux-gnu/librt.so.1 /lib/x86_64-linux-gnu/libdl.so.2 /lib/x86_64-linux-gnu/libpthread.so.0 /lib/x86_64-linux-gnu/libm.so.6 /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libdbus-1.so.3 /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 /usr/lib/x86_64-linux-gnu/libidn2.so.0 /usr/lib/x86_64-linux-gnu/librtmp.so.1 /usr/lib/x86_64-linux-gnu/libssh2.so.1 /usr/lib/x86_64-linux-gnu/libpsl.so.5 /usr/lib/x86_64-linux-gnu/libnettle.so.6 /usr/lib/x86_64-linux-gnu/libgnutls.so.30 /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 /usr/lib/x86_64-linux-gnu/libkrb5.so.3 /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 /lib/x86_64-linux-gnu/libcom_err.so.2 /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 /lib64/l
Oct  2 04:00:03 server tvheadend[27605]: CRASH: Register dump [23]: 0000000000000000 00007ffc037b6cc0 0000000000000008 0000000000000246 0000000000000096 0000000000471af0 00000000025e39a0 0000000000000092 0000000000000002 00007ffc037b6cc0 0000000000471997 0000000000000006 0000000000000000 0000000000000000 00007f7435beafff 00007ffc037b6d38 00007f7435beafff 0000000000000246 002b000000000033 0000000000000000 0000000000000000 fffffffe7ffbfa17 0000000000000000
Oct  2 04:00:03 server tvheadend[27605]: CRASH: STACKTRACE
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x42a4f6
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x7f743626c0e0
Oct  2 04:00:03 server tvheadend[27605]: CRASH: gsignal+0xcf  (/lib/x86_64-linux-gnu/libc.so.6)
Oct  2 04:00:03 server tvheadend[27605]: CRASH: abort+0x16a  (/lib/x86_64-linux-gnu/libc.so.6)
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x7f7435be3e67
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x7f7435be3f12
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x414bc9
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x41764f
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x405d05
Oct  2 04:00:03 server tvheadend[27605]: CRASH: __libc_start_main+0xf1  (/lib/x86_64-linux-gnu/libc.so.6)
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x406139

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

$ rm -fr ~/.hts/tvheadend/channels/ ~/.hts/tvheadend/iptvservices/
$ rm -fr ~/.hts/tvheadend/epggrab/xmltv/channels/ ~/.hts/tvheadend/epgdb.v2 ~/.hts/tvheadend/imagecache/meta/

Это помогло и процесс запустился. Были мысли на кривой XMLTV, закоментировал заливку программы передач в tvheadend и перезапустил процесс импорта. В ответ процесс упал с такой же ошибкой - значит дело не в XMLTV.