Bug 36584 - текущая версия borg требует более старую версию python3-module-msgpack
Summary: текущая версия borg требует более старую версию python3-module-msgpack
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: borg (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Dmitriy Shadrinov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-04-11 21:02 MSK by anton
Modified: 2019-06-15 13:48 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description anton 2019-04-11 21:02:13 MSK
На данный момент:

# 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

То есть, как понимаю, уже за пределами требуемой.
Comment 1 Sergey Vlasov 2019-04-12 19:08:35 MSK
Действительно, разработчики BorgBackup заявляют, что версии borg 1.1.x не работают с msgpack >= 0.6.0, а изменения для совместимости с более новыми версиями msgpack есть только в git master:

https://github.com/borgbackup/borg/issues/3753#issuecomment-454011810
Comment 2 Vitaly Lipatov 2019-04-12 19:38:34 MSK
(В ответ на комментарий №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 ?
Comment 3 Repository Robot 2019-04-12 20:49:56 MSK
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)
Comment 4 Sergey Vlasov 2019-04-13 17:27:53 MSK
Проблема ещё не решена окончательно — сейчас у пакета 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 при явном указании версии в зависимостях — в данном случае это может быть оптимальным решением, но надо понять, как это можно сделать.
Comment 5 Grigory Ustinov 2019-04-13 17:45:34 MSK
Прошу, не трогайте borg эту неделю. Ему ещё нужен llfuse, который надо обновить, потому что текущий не собирается с python3.7. Я сейчас в таске удаляю их обоих. После приезда нового змея, можете собирать пакет, как хотите.
Comment 6 Vitaly Lipatov 2019-04-13 18:50:23 MSK
(В ответ на комментарий №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, и всё станет хорошо.
Comment 7 Dmitriy Shadrinov 2019-05-25 13:47:45 MSK
Вышла версия borg-1.1.10, которая не требует внешнего python-msgpack. Может быть теперь можно вернуть borg обратно в Сизиф?
Comment 8 Dmitriy Shadrinov 2019-06-15 12:34:23 MSK
Спасибо
Comment 9 Vitaly Lipatov 2019-06-15 13:48:46 MSK
 * Ср июн 05 2019 Vitaly Lipatov <lav@altlinux.ru> 1.1.10-alt1
 - borgbackup 1.1.10 bug fix release (now bundling msgpack)
 - gcc-c++ used