Bug 35492
| Summary: | Не обновляется с файловым конфликтом | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Evgenii Terechkov <evg> |
| Component: | gdb | Assignee: | Gleb F-Malinovskiy <glebfm> |
| Status: | NEW --- | QA Contact: | qa-sisyphus |
| Severity: | blocker | ||
| Priority: | P3 | CC: | aen, at, dimard, glebfm, imz, iv, lav, ldv, rider, sbolshakov, zerg |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
| URL: | https://lists.altlinux.org/pipermail/devel/2018-October/205585.html | ||
| Bug Depends on: | 34619, 36628 | ||
| Bug Blocks: | 34231 | ||
*** Bug 34858 has been marked as a duplicate of this bug. *** файл /usr/share/gdb/python/gdb из устанавливаемого пакета gdb-8.2.50.20180917-alt2.x86_64 конфликтует с файлом из пакета gdb-7.9-alt3.x86_64 Для обхода этой ошибки нужно предпринять какие-то действия на стороне rpm/rpm-build. Я так понимаю, это сюда же? https://bugzilla.altlinux.org/show_bug.cgi?id=31878 *** Bug 31878 has been marked as a duplicate of this bug. *** Воспроизводится на rpm 4.13 и чинится средствами, которых в 2018 году не было.
Проверка в контейнере Sisyphus (rpm 4.13.0.1-alt44): поставлен gdb 7.9-alt3 из архива p8 (там /usr/share/gdb/python/gdb — симлинк на …/python2.7/site-packages/gdb), затем apt-get install gdb (17.2.0.32.4f981313519-alt1, где это каталог):
file /usr/share/gdb/python/gdb from install of gdb-17.2.0.32.4f981313519-alt1.x86_64 conflicts with file from package gdb-7.9-alt3.x86_64
E: Error while running transaction
Обход из alt/gdb.spec:207-213 (%pre удаляет симлинк; добавлен в 8.2.50.20180917-alt3/alt4, задания 233277/233343, с пометкой "works for rpm-4.0.4, not for rpm-4.13") не срабатывает: проверка файловых конфликтов выполняется до %pre. Корень — #34619 в rpm; инструмент для таких случаев — %pretrans, появившийся в rpm-build 4.0.4.185 (#36628, https://www.altlinux.org/RPM/pretrans).
Рецепт проверен на тестовом пакете (симлинк → каталог) на том же rpm 4.13: без %pretrans — тот же конфликт, с %pretrans обновление проходит и через rpm -Uvh, и через apt-get install. Примерная замена %pre в alt/gdb.spec:207-213 (на самом gdb не собирал):
%pretrans -p <lua>
-- gdb < 8.2.50.20180917-alt1 shipped a symlink here (ALT#35492)
path = "%_datadir/gdb/python/gdb"
st = posix.stat(path)
if st and st.type == "link" then
os.remove(path)
end
Практическая значимость невелика — обновление с gdb 7.9 (2016–2018 гг.), но ошибка реальна и снимается шестью строками.
|

Description
Evgenii Terechkov 2018-10-09 07:10:13 MSK=8<================================================================= файл /usr/share/gdb/python/gdb из устанавливаемого пакета gdb-8.2.50.20180917-alt1.x86_64 конфликтует с файлом из пакета gdb-7.9-alt4.x86_64 E: Ошибка во время исполнения транзакции E: Handler silently failed [1] 15619 exit 100 apt-get dist-upgrade =8<=================================================================