На данный момент: # apt-cache policy borg borg: Установлен: 1.1.9-alt2 Кандидат: 1.1.9-alt2 Однако при попытке скомандовать, например, "borg -h" получаем: Traceback (most recent call last): File "/usr/bin/borg", line 6, in <module> from pkg_resources import load_entry_point File "/usr/lib/python3/site-packages/pkg_resources/__init__.py", line 3191, in <module> @_call_aside File "/usr/lib/python3/site-packages/pkg_resources/__init__.py", line 3175, in _call_aside f(*args, **kwargs) File "/usr/lib/python3/site-packages/pkg_resources/__init__.py", line 3204, in _initialize_master_working_set working_set = WorkingSet._build_master() File "/usr/lib/python3/site-packages/pkg_resources/__init__.py", line 583, in _build_master ws.require(__requires__) File "/usr/lib/python3/site-packages/pkg_resources/__init__.py", line 900, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/lib/python3/site-packages/pkg_resources/__init__.py", line 786, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'msgpack-python!=0.5.0,!=0.5.1,!=0.5.2,!=0.5.3,!=0.5.4,!=0.5.5,<=0.5.6,>=0.4.6' distribution was not found and is required by borgbackup Однако: # apt-cache policy python3-module-msgpack python3-module-msgpack: Установлен: 0.6.1-alt1 Кандидат: 0.6.1-alt1 То есть, как понимаю, уже за пределами требуемой.
Действительно, разработчики BorgBackup заявляют, что версии borg 1.1.x не работают с msgpack >= 0.6.0, а изменения для совместимости с более новыми версиями msgpack есть только в git master: https://github.com/borgbackup/borg/issues/3753#issuecomment-454011810
(В ответ на комментарий №1) > Действительно, разработчики BorgBackup заявляют, что версии borg 1.1.x не > работают с msgpack >= 0.6.0, а изменения для совместимости с более новыми > версиями msgpack есть только в git master: > > https://github.com/borgbackup/borg/issues/3753#issuecomment-454011810 Собрать msgpack 0.5.6 или будем собирать borg 1.2.0 alpha ?
python-module-msgpack05-0.5.6-alt3 -> sisyphus: * Fri Apr 12 2019 Vitaly Lipatov <lav@altlinux> 0.5.6-alt3 - build msgpack05 for borg 1.1 compatibility (ALT bug 36584)
Проблема ещё не решена окончательно — сейчас у пакета borg-1.1.9-alt2 есть зависимость на виртуальный пакет python3(msgpack), который предоставляется двумя пакетами: python3-module-msgpack-0.6.1-alt1 и python3-module-msgpack05-0.5.6-alt3. Также в пакете borg-1.1.9-alt2 есть указанная вручную зависимость на python3-module-msgpack >= 0.4.6, которая тоже может быть удовлетворена любым из пакетов python3-module-msgpack-0.6.1-alt1 или python3-module-msgpack05-0.5.6-alt3. В результате при установке пакета borg может быть выбран любой из этих двух пакетов с модулем msgpack — у меня сейчас выбирается именно новая несовместимая версия. Для исправления этой ситуации нужно добавить зависимости в пакет borg, чтобы выбирался именно пакет python3-module-msgpack05. Кроме того, пакеты python3-module-msgpack и python3-module-msgpack05 конфликтуют, поэтому наличие пакета python3-module-msgpack05 означает фактический даунгрейд модуля msgpack для всего репозитория — новую версию msgpack будет невозможно установить при наличии в системе установленного пакета borg (если исправить в нём зависимости, чтобы требовалась именно совместимая версия msgpack). При просмотре зависимостей средствами apt я пока не нашёл пакетов, которые бы явно требовали msgpack >= 0.6.0 (вообще зависимость с версией нашлась только в пакете matrix-synapse, где требуется python3-module-msgpack >= 0.5.0), однако, насколько я понимаю, зависимости, обрабатываемые модулем pkg_resources, в настоящий момент не преобразуются в зависимости на уровне RPM, поэтому вполне возможно наличие в репозитории пакетов, требующих именно msgpack >= 0.6.0, которые при текущем варианте упаковки msgpack05 сломаются после установки исправленного пакета borg. Вроде бы в Python как-то можно сделать доступными несколько версий одного модуля таким образом, чтобы старые версии были доступны только через pkg_resources при явном указании версии в зависимостях — в данном случае это может быть оптимальным решением, но надо понять, как это можно сделать.
Прошу, не трогайте borg эту неделю. Ему ещё нужен llfuse, который надо обновить, потому что текущий не собирается с python3.7. Я сейчас в таске удаляю их обоих. После приезда нового змея, можете собирать пакет, как хотите.
(В ответ на комментарий №4) > Проблема ещё не решена окончательно — сейчас у пакета borg-1.1.9-alt2 есть > зависимость на виртуальный пакет python3(msgpack), который предоставляется > двумя пакетами: python3-module-msgpack-0.6.1-alt1 и > python3-module-msgpack05-0.5.6-alt3. Также в пакете borg-1.1.9-alt2 есть > указанная вручную зависимость на python3-module-msgpack >= 0.4.6, которая тоже > может быть удовлетворена любым из пакетов python3-module-msgpack-0.6.1-alt1 или > python3-module-msgpack05-0.5.6-alt3. В результате при установке пакета borg > может быть выбран любой из этих двух пакетов с модулем msgpack — у меня сейчас > выбирается именно новая несовместимая версия. Для исправления этой ситуации > нужно добавить зависимости в пакет borg, чтобы выбирался именно пакет > python3-module-msgpack05. Более того, в requirements.txt у borg указан старый модуль msgpack-python, то есть borg не заработает, пока не исправить название модуля. > > Кроме того, пакеты python3-module-msgpack и python3-module-msgpack05 > конфликтуют, поэтому наличие пакета python3-module-msgpack05 означает > фактический даунгрейд модуля msgpack для всего репозитория — новую версию > msgpack будет невозможно установить при наличии в системе установленного пакета > borg (если исправить в нём зависимости, чтобы требовалась именно совместимая > версия msgpack). При просмотре зависимостей средствами apt я пока не нашёл > пакетов, которые бы явно требовали msgpack >= 0.6.0 (вообще зависимость с > версией нашлась только в пакете matrix-synapse, где требуется > python3-module-msgpack >= 0.5.0), однако, насколько я понимаю, зависимости, > обрабатываемые модулем pkg_resources, в настоящий момент не преобразуются в > зависимости на уровне RPM, поэтому вполне возможно наличие в репозитории И это беда, потому что в зависимостях могут быть вилки (как мы это видим на примере borg, но, к сожалению, пока мы их не обрабатываем). > Вроде бы в Python как-то можно сделать доступными несколько версий одного > модуля таким образом, чтобы старые версии были доступны только через > pkg_resources при явном указании версии в зависимостях — в данном случае это > может быть оптимальным решением, но надо понять, как это можно сделать. Я надеюсь, что эти игры borg с версией msgpack закончатся на днях выходом новой версии 1.2.0, и всё станет хорошо.
Вышла версия borg-1.1.10, которая не требует внешнего python-msgpack. Может быть теперь можно вернуть borg обратно в Сизиф?
Спасибо
* Ср июн 05 2019 Vitaly Lipatov <lav@altlinux.ru> 1.1.10-alt1 - borgbackup 1.1.10 bug fix release (now bundling msgpack) - gcc-c++ used