Поиск по блогу

суббота, 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.

суббота, 2 ноября 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.
После установки новой версии сертификаты обновились без проблем.

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.

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

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


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

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

понедельник, 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

четверг, 3 октября 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. Можно посмотреть у кого какие есть сертификаты.

Падает 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.