Bug 25096

Summary: rpm cannot change directory to symlink
Product: Sisyphus Reporter: Mikhail Efremov <sem>
Component: rpmAssignee: placeholder <placeholder>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: at, glebfm, imz, iv, lav, ldv, n3npq, placeholder, shaba, vt
Version: unstable   
Hardware: all   
OS: Linux   

Description Mikhail Efremov 2011-02-16 17:46:15 MSK
Если при обновлении пакета каталог изменяется на symlink, то rpm не умеет обработать эту ситуацию:
Terminal  error: unpacking of archive failed on
file /usr/share/doc/Terminal/da/images: cpio: rename failed - Это
каталог
Terminal error: unpacking of archive failed on
file /usr/share/doc/Terminal/fr/images: cpio: rename failed - Это
каталог

Это не только в нашем rpm, см.
https://bugzilla.redhat.com/show_bug.cgi?id=447156.
Там пишут что существует и обратная проблема:
https://bugzilla.redhat.com/show_bug.cgi?id=646523.
Comment 1 Ivan A. Melnikov 2011-02-17 08:22:33 MSK
У меня в своё время, что хуже наверное, в случае обратной проблемы всё проходило тихо: каталог не заменял симлинк, а его содержимое распаковвывалось туда, куда указывает симлинк.

Вообще, симлинки vs каталоги -- известные и переодически всплывающие грабли. Вот, например, для полноты картины, ещё интересный случай:

http://lists.altlinux.org/pipermail/devel/2008-December/164768.html
Comment 2 Dmitry V. Levin 2011-02-18 03:16:50 MSK
Этот баг в rpm был всегда, известен очень давно и его никто не собирается исправлять.

Пример объезда 9-летней давности:
$ rpmquery --scripts --triggers glibc-locales
Comment 3 Jeff Johnson 2012-01-03 02:49:39 MSK
tracked at https://bugs.launchpad.net/rpm/+bug/651390
Comment 4 Alexey Shabalin 2017-01-16 21:08:55 MSK
а как в новом rpm с этим бороться? если хочется заменить директорию на симлинк?
Comment 5 Gleb F-Malinovskiy 2017-01-17 15:40:41 MSK
(В ответ на комментарий №4)
> а как в новом rpm с этим бороться? если хочется заменить директорию на симлинк?

Ничего не изменилось, проблема как была неразрешимая, так и осталась.
Решать так же, как и раньше.
Comment 6 Alexey Shabalin 2017-01-17 15:52:59 MSK
(В ответ на комментарий №5)
> (В ответ на комментарий №4)
> > а как в новом rpm с этим бороться? если хочется заменить директорию на симлинк?
> 
> Ничего не изменилось, проблема как была неразрешимая, так и осталась.
> Решать так же, как и раньше.

Сейчас сразу ругается, не доходя до выполнения %pre.
Comment 7 Gleb F-Malinovskiy 2017-01-17 15:59:55 MSK
(В ответ на комментарий №6)
> Сейчас сразу ругается, не доходя до выполнения %pre.

Ох, да.
Comment 8 Alexey Shabalin 2017-02-27 13:53:35 MSK
будьте добры, дайте рекомендации, как сейчас обходить такую ситуацию.
Comment 9 Vitaly Lipatov 2024-04-03 13:09:48 MSK
> file /usr/share/doc/Terminal/da/images: cpio: rename failed - Это
каталог

А я правильно понимаю, что это баг не rpm, а cpio, который собственно занимается распаковкой файлов?