[devel] bad paths in rpm packages

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Мар 25 06:08:51 MSK 2008


On Tue, Mar 25, 2008 at 05:50:03AM +0300, Alexey Tourbin wrote:
> Но тут всплыла другая проблема: путь может быть каноничен,
> но не кошерен.  rpm позволяет запаковать некошерный путь:
> 
> %install
> install -pD /dev/null %buildroot/etc/rc.d/init.d/functions
> ln -s rc.d/init.d %buildroot/etc/init.d
> %files
> /etc/init.d/functions
> 
> $ rpm -bb test.spec 
> ...
> warning: Installed (but unpackaged) file(s) found:
>     /etc/init.d
>     /etc/rc.d/init.d/functions
> Wrote: /home/at/RPM/RPMS/athlon/test-1.0-alt1.athlon.rpm
> $ rpm -qlvp /home/at/RPM/RPMS/athlon/test-1.0-alt1.athlon.rpm
> -rwxr-xr-x    1 root    root                0 Mar 20 18:50 /etc/init.d/functions
> $

Хужее того, rpm охотно формирует пакет, который заведомо нельзя
установить:

%install
install -pD /dev/null %buildroot/foo/rc.d/init.d/functions
ln -s rc.d/init.d %buildroot/foo/init.d
%files     
/foo/init.d/functions
/foo/init.d

lrwxrwxrwx    1 root    root               11 Mar 25 06:05 /foo/init.d -> rc.d/init.d
-rwxr-xr-x    1 root    root                0 Mar 20 18:50 /foo/init.d/functions

$ sudo rpm -iv /home/at/RPM/RPMS/athlon/test-1.0-alt1.athlon.rpm
Preparing packages for installation...
test-1.0-alt1
error: unpacking of archive failed on file /foo/init.d: cpio: rename failed - Is a directory
$

$ find /foo -ls
261633    4 drwxr-xr-x   3 root     root         4096 Mar 25 06:05 /foo
261655    4 drwxr-xr-x   2 root     root         4096 Mar 25 06:05 /foo/init.d
261675    0 lrwxrwxrwx   1 root     root           11 Mar 25 06:05 /foo/init.d;47e86bfb -> rc.d/init.d
$
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080325/26c83aeb/attachment-0002.bin>


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