No uuidgen utility is installed
Open/Libre Office extension for converting eBooks in fb2 format
Brought to you by:
ikonta_521
Здравствуйте.
После обновления до версии 2.45 при входе в 'FB2 Properties Editor' стало вылетать предупреждение: 'No uuidgen utility is installed in the system. New book ID won't be created. Install uuidgen.' При этом, насколько я вижу, ID книги генерируется без проблем.
OS: Debian Stretch, LibreOffice 5.2.1.2
Спасибо за сообщение.
Исправил. Будет в новой версии 2,46
Скоро выложим на сайт.
Здравствуйте.
В версии 2.46 ошибка осталась. В системе установлена libuuid1 версии 2.28.1.
ID при создании книги генерируется, но окно с предупреждением по-прежнему вылетает.
В системе есть такие файлы, имеющие отношение к uuid:
/home/user/.config/libreoffice/4/user/extensions/tmp/extensions/lu312164f8uj7.tmp_/OOoFBTools.oxt/win32/uuidgen.exe
/home/user/.config/libreoffice/4/user/extensions/tmp/extensions/lu8390bc0sf3.tmp_/OOoFBTools.oxt/win32/uuidgen.exe
/home/user/.config/libreoffice/4/user/uno_packages/cache/uno_packages/lu8390bc0sf4.tmp_/OOoFBTools.oxt/win32/uuidgen.exe
/lib/x86_64-linux-gnu/libuuid.so.1
/lib/x86_64-linux-gnu/libuuid.so.1.3.0
/usr/bin/dbus-uuidgen
/usr/lib/python2.7/uuid.py
/usr/lib/python2.7/uuid.pyc
/usr/lib/python3.5/uuid.py
Странное имя исполняемого файла.
В каком пакете такая экзотика?
У меня:
Соответственно твой workaround:
1. Добавление в PATH каталога ~/bin/;
2. Создание этого каталога
3. Создание в каталоге ссылки uuidgen, указывающей на твой исполняемый файл (/usr/bin/dbus-uuidgen).
На предмет искаробочного решения нужно думать кто, в чём и насколько не прав.
ЗЫ: Пакеты deb делать не умеешь?
Не знаю, в каком пакете.
Пакеты собирать не умею.
Предлагаемый тобой workaround- применять не буду, просто подожду, когда баг поправят, он не критичный, жить можно.
Недостаточные навыки использования инструментария выбранного дистрибутива — проблема.
То, что ты не умеешь собирать пакеты не критично.
Посмотри какие расширения есть в репозиториях и потряси мэйнтейнеров на предмет запинывания туда же OOoFBTools.
Странно.
Напишите, какой командой в терминале можно на вашей системе вызвать эту утилиту. Подозреваю, что я отлавливаю наличие другой утилиты...
Не знаю даже, чем генерируется ID в моём случае, но он генерируется (см. пост ниже).
Есть способ мне проверить, чем же точно у меня генерируется ID?
Last edit: Onion Cucumber 2016-10-01
Не дописал:
Или сделать эту опцию показа сообщения ТОЛЬКО для отсутствия uuidgen, поскольку остальные утилиты принципиально важны доя функционирования конвертера (там нет двойного алгоритма, как с генерацией ID...)?
Установил утилиту uuidgen, с ней генерируются ID книги вида:
8BB17A1B-665F-42DA-A024-070026CAF41A
0FE45840-B551-4069-93F9-C4F1EC817FA9
F6F61C1D-8304-44F2-A258-804F2483F07E
Если же утилиту удалить, генерируются ID вида:
OOoFBTools-2016-10-1-16-47-11-40323048028277-1241017
OOoFBTools-2016-10-1-16-47-16-403230480282112-170053
OOoFBTools-2016-10-1-16-47-22-403230480282154-1863528
Как по мне, ID второго вида не хуже, чем ID первого вида, и значит, uuidgen не нужен?
Это - кому как нравится :)
Оба варианта -уникальные. Просто 1-й - классического типа, и многим пользователям он кажется более правильным.
Ну хорошо, с приверженцами ID "классического типа" понятно. А как же быть простым смертным, которые согласны на второсортный ID, но не хотят вздрагивать каждый раз, заходя в редактор настроек? :D
Вы написали, что установили uuidgen. С ней все так де появляется сообщение, заставляющее вздрагивать? :)не должно быть теперь так.
Если я верно понял, то вы хотите, чтобы была опция в Настройках, позволяющая отключать проверку на установленные утилиты ?
Да, вы правильно поняли, что при установленном uuidgen сообщение с предупреждением пропало. Но я его сразу после этого удалил, ведь он не нужен, чтобы генерировать ID (это факт, согласны?) Но без установленного uuidgen опять вылетает предупреждение о том, что без uuidgen ID сгенерирован не будет.
Давайте сейчас посмотрим даже не на то, чего я хочу, а чего, скорее всего, хотите Вы. Наверно, Вы хотите, чтобы Ваша программа работала логически корректно и не противоречила сама себе. Но сейчас возникает явное противоречие: вылетающее предупреждение не соответствует действительности. И, возможно, было бы разумно привести сообщение в соответствие с этой действительностью. Это можно сделать двумя путями:
1. Удалить возможность генерировать ID без установленного uuidgen.
2. Исправить алгоритм, выводящий предупреждение.
Очевидно, что второй вариант более прогрессивный, чем первый. Мне кажется, наличие uuidgen в системе должно быть опциональным. Те ребята, которым нужен классный ID, ставят uuidgen и получают свой классный ID. А ребята, которые даже не знали таких слов как ID, uuidgen, так и должны жить дальше, не зная этих слов и генерируя свои книжки с неклассными ID. Согласны?
Конкретно, я предлагаю заменить проверку наличия uuidgen на проверку, сгенерировался ли ID. Если ID сгенерировался, то мы даже не заморачиваемся, чем он там сгенерировался, и какие утилиты для генерирования у нас установлены. И только если не был сгенерирован ID, придётся предпринимать действия по установке дополнительных утилит. Согласны?
Я согласен с вами почти во всем.
1. Дело в том, что проверку, сгенерировался ли ID вообще делать не надо - он ВСЕГДА генерируется 2-м алгоритмом, если нет утилиты uuidgen. Поэтому такая проверка будет избыточна.
2. Ввести проверку на наличие всех нужных систем меня просили другие пользователи.
Поэтому в этой ситуации я думаю, что оптимальным вариантом будет опция в Настройках конвертера "Показывать Сообщение об отсутствии утилит в системе".
Если пойти по этому пути , то нужно решить пару вопросов:
Эта опция должна быть для каждой утилиты ( их несколько -base64, xmllib2, uuidgen и др. ) в отдельности, или же для всех сразу?
Понятно, спасибо за объяснение.
Мне кажется, правильнее было бы добавить в окошко сообщения об отсутствии утилит(ы) кнопку "Больше не напоминать". Нажатие на кнопку можно запоминать и хранить в каком-либо файлике, который будет затираться при установке новой версии ooofbtools. Так можно и уведомлять пользователя о том, что некоторые утилиты желательно доустановить, и в то же время частые уведомления не будут надоедать.
Если такую кнопку добавить непросто, давайте ещё подумаем.
Last edit: Onion Cucumber 2016-10-01
Если честно, то я не сторонник отключения дальнейшего показа сообщения в самом окне сообщения - часто попадал в такую ситуацию, когда мне потом требовалось это сообщение, а включить его уже нельзя. Поэтому все-таки предпочтительней сделать опцию в Настройках: отключил - и все. Понадобилось напоминание - включил.
Впрочем, я всегда открыт для разных идей пользователей... Надо подумать, что в действительности будет удобнее.
Хорошо, спасибо.
Сделал опцию в Настройках конвертера показа/скрытия сообщения об отсутствиив системе улититы uuidgen
Зависисмости бывают трёх типов:
1. Критические (в нашем случае — dev-libs/libxml2), при отсутствии которых ничего не работает;
2. Условные (base64, если нет необходимости в экспорте графики, то можно и не заметить проблемы);
3. Опциональные (обсуждаемый uuidgen). Про которые можно сказать: есть — хорошо, нет — не критично.
Поэтому по мне было бы логичнее сделать в настройках выбор типа идентификатора файла: внешний (например с возможностью переопределения имени команды относительно стандарта) и legacy встроенный.
При выборе внешнего и отсутствии утилиты — сообщение об ошибке с указанием на workaround в виде отката на legacy-реализацию.
Здорово придумано.
Пользователям линукс можно ещё более упростить жизнь и даже не проверять наличие uuidgen, а генерировать uuid посредством python (если extension так умеет):
Насколько мне известно, python сейчас предустановлен в популярных дистрибутивах изначально (чего не скажешь о той же uuidgen, как оказывается).
Надо посмотреть, можно ли из StarBasic, на чем написан OOoFBTools, вызывать
код на Питоне...