[devel] boost: что то пошло не так

Aleksei Nikiforov darktemplar на altlinux.org
Пн Июн 15 14:02:15 MSK 2020


15.06.2020 12:18, Dmitry V. Levin пишет:
> On Mon, Jun 15, 2020 at 10:24:20AM +0300, Aleksei Nikiforov wrote:
>> 14.06.2020 17:25, Dmitry V. Levin пишет:
>>> On Sun, Jun 14, 2020 at 02:07:36PM +0300, Валерий Иноземцев wrote:
>>>> $ sudo apt-get dist-upgrade -V
>>>> Чтение списков пакетов... Завершено
>>>> Построение дерева зависимостей... Завершено
>>>> Подсчет обновлений... Завершено
>>>> Следующие пакеты будут ОБНОВЛЕНЫ:
>>>>    LibreOffice-common (sisyphus+252649.100.1.1 на 1591014588 =>
>>>> sisyphus+253287.100.1.3 на 1591989705)
>>>>    LibreOffice-gtk2 (sisyphus+252649.100.1.1 на 1591014588 =>
>>>> sisyphus+253287.100.1.3 на 1591989705)
>>>>    LibreOffice-integrated (sisyphus+252649.100.1.1 на 1591014588 =>
>>>> sisyphus+253287.100.1.3 на 1591989705)
>>>>    LibreOffice-langpack-ru (sisyphus+252649.100.1.1 на 1591014588 =>
>>>> sisyphus+253287.100.1.3 на 1591989705)
>>>>    inkscape (sisyphus+251250.40.2.1 на 1588780480 =>
>>>> sisyphus+253246.100.1.1 на 1591934757)
>>>>    libabw (sisyphus+236618.100.1.1 на 1566824644 =>
>>>> sisyphus+253258.100.1.1 на 1591939861)
>>>>    libcdr (sisyphus+251539.1500.8.1 на 1590658446 =>
>>>> sisyphus+253261.100.1.1 на 1591940723)
>>>>    libcmis (sisyphus+244675.100.1.1 на 1579710190 =>
>>>> sisyphus+253263.100.1.1 на 1591941303)
>>>>    libe-book (sisyphus+251539.2500.8.1 на 1590661070 =>
>>>> sisyphus+253265.100.1.1 на 1591941337)
>>>>    libepubgen (sisyphus+221247.100.1.3 на 1549939159 =>
>>>> sisyphus+253266.100.1.1 на 1591941597)
>>>>    libetonyek (sisyphus+250778.100.1.1 на 1588088238 =>
>>>> sisyphus+253445.100.1.1 на 1592069825)
>>>>    libfreehand (sisyphus+252817.100.1.1 на 1591283156 =>
>>>> sisyphus+253269.100.1.1 на 1591941931)
>>>>    libmspub (sisyphus+251539.2100.8.1 на 1590659052 =>
>>>> sisyphus+253273.100.1.1 на 1591942788)
>>>>    libmwaw (0.3.14-alt1 на 1535132114 => sisyphus+253275.100.1.1 на 1591942999)
>>>>    libodfgen (0.1.7-alt1 на 1535133396 => sisyphus+253276.100.1.1 на 1591944156)
>>>>    liborcus (sisyphus+244680.100.1.1 на 1579710971 =>
>>>> sisyphus+253280.100.1.1 на 1591944672)
>>>>    libpagemaker (0.0.4-alt1 на 1519117710 =>
>>>> sisyphus+253282.100.1.1 на 1591945267)
>>>>    libqxp (sisyphus+251539.2200.8.1 на 1590659140 =>
>>>> sisyphus+253285.100.1.1 на 1591945968)
>>>>    librevenge (0.0.4-alt1 на 1483045316 => sisyphus+253289.100.1.1 на 1591947672)
>>>>    libvisio (sisyphus+251539.1400.8.1 на 1590658314 =>
>>>> sisyphus+253291.100.1.3 на 1591983687)
>>>>    libwpd10 (0.10.2-alt1 на 1519115346 => sisyphus+253293.100.1.2 на 1591982968)
>>>>    libwps (sisyphus+244861.100.1.1 на 1579789261 =>
>>>> sisyphus+253294.100.1.2 на 1591983116)
>>>>    libzmf (sisyphus+251539.2300.8.1 на 1590659222 =>
>>>> sisyphus+253297.100.1.2 на 1591985634)
>>>>    usbids (sisyphus+249335.100.1.1 на 1585955483 =>
>>>> sisyphus+253403.100.1.1 на 1592047099)
>>>> Следующие НОВЫЕ пакеты будут установлены:
>>>>    libboost_filesystem1.73.0
>>>> (1.73.0-alt1:sisyphus+253195.100.1.1 на 1591888782)
>>>>    libboost_iostreams1.73.0 (1.73.0-alt1:sisyphus+253195.100.1.1 на 1591888782)
>>>>    libboost_locale1.73.0 (1.73.0-alt1:sisyphus+253195.100.1.1 на 1591888782)
>>>>    libboost_system1.73.0 (1.73.0-alt1:sisyphus+253195.100.1.1 на 1591888782)
>>>>    libboost_thread1.73.0 (1.73.0-alt1:sisyphus+253195.100.1.1 на 1591888782)
>>>> 24 будет обновлено, 5 новых установлено, 0 пакетов будет удалено и 0 не
>>>> будет обновлено.
>>>> Необходимо получить 0B/144MB архивов.
>>>> После распаковки потребуется дополнительно 1276kB дискового пространства.
>>>> Продолжить? [Y/n]
>>>> Совершаем изменения...
>>>> Подготовка...
>>>>
>>>> ####################################################################################################
>>>> [100%]
>>>> 	файл /usr/lib64/libboost_system.so.1 из устанавливаемого пакета
>>>> libboost_system1.73.0-1:1.73.0-alt1.x86_64 конфликтует с файлом из
>>>> пакета libboost_system1.72.0-1:1.72.0-alt2.x86_64
>>>> 	файл /usr/lib64/libboost_thread.so.1 из устанавливаемого пакета
>>>> libboost_thread1.73.0-1:1.73.0-alt1.x86_64 конфликтует с файлом из
>>>> пакета libboost_thread1.72.0-1:1.72.0-alt2.x86_64
>>>> 	файл /usr/lib64/libboost_locale.so.1 из устанавливаемого пакета
>>>> libboost_locale1.73.0-1:1.73.0-alt1.x86_64 конфликтует с файлом из
>>>> пакета libboost_locale1.72.0-1:1.72.0-alt2.x86_64
>>>> 	файл /usr/lib64/libboost_filesystem.so.1 из устанавливаемого пакета
>>>> libboost_filesystem1.73.0-1:1.73.0-alt1.x86_64 конфликтует с файлом из
>>>> пакета libboost_filesystem1.72.0-1:1.72.0-alt2.x86_64
>>>> 	файл /usr/lib64/libboost_iostreams.so.1 из устанавливаемого пакета
>>>> libboost_iostreams1.73.0-1:1.73.0-alt1.x86_64 конфликтует с файлом из
>>>> пакета libboost_iostreams1.72.0-1:1.72.0-alt2.x86_64
>>>> E: Ошибка во время исполнения транзакции
>>
>> Вместе с boost-1.73.0-alt1 также был собран boost-1.72.0-alt3 вместо
>> boost-1.72.0-alt2, в котором эти симлинки не упаковывались, и эти пакеты
>> по файлам не конфликтовали.
>>
>> Подобное проделывалось при апгрейде с boost 1.71.0 до 1.72.0, и проблем
>> не возникало.
> 
> Поскольку обновление с boost-1.72.0-alt2 до boost-1.72.0-alt3 не является
> обязательным, точечное обновление всё равно было сломано.
> 

Сломанное точечное обновление, конечно, плохо, но не так плохо как
сломанный dist-upgrade.

>> Однако, в задании #253431 пакет boost-1.72.0-alt3 был удалён
>> пользователем qa_ldv, и похоже это было сделано слишком рано.
>>
>> Есть идеи как лучше поправить эту ситуацию?
> 
> Раз пакеты конфликтуют, надо расставить конфликты.
> Ну и убрать симлинки, конечно.
> 

Если убрать симлинки, то конфликты становятся не нужны.

>>> Эти ссылки /usr/lib64/libboost_*.so.1 упакованы зря, от них один вред.
>>> В p9 их нет, они появились в 1.71.0-alt1.
>>
>> Эти симлинки добавлены апстримом. При необходимости, конечно, их можно
>> попробовать убрать из пакетов. Что из-за этого может сломаться - не знаю.
> 
> А зачем эти симлинки были добавлены?  Выглядит как неосознанная ошибка.
> Они же, надеюсь, не загружают их dlopen'ом?
> 
> 

Я нашёл изменение, которое предположительно добавило данные симлинки:

https://github.com/boostorg/boost/commit/47ef674f752ad2cfeb581665cbea18ee6faecd2e#diff-09cc8a80ee9a61cf35f9c4498eefd67aL344

Но почему это было изменено я документации не нашёл.

Как минимум, в boost dlopen-ом соседние библиотеки из комплекта boost не
открывают.

Делаю задание, убирающее симлинки.


Подробная информация о списке рассылки Devel