[devel] FAILED fpc.git=2.2.4-alt1
Alexey Tourbin
at на altlinux.ru
Пт Апр 24 22:04:10 MSD 2009
On Fri, Apr 24, 2009 at 09:42:02PM +0400, Afanasov Dmitry wrote:
> 24.04.09, Alexey Tourbin<at на altlinux.ru> написал(а):
> > On Fri, Apr 24, 2009 at 07:46:53PM +0300, Slava Dubrovskiy wrote:
> > > Я так понимаю нужно или собирать все одновременно, или делать две версии
> > > fpc.
> > Yes, you have to add that another package to your fpc task.
> часто это проблема - не зря ведь тут о NMU все твердят.
>
> надо будет проверить на выходных, как себя ведут fpc модули при
> простейшем добавлении функции. так как гложет меня мысль, что текущие
> зависимости слишком сильные - это как полному имени либы
> привязываться, вместо soname'а.
I think that it is only the unit interface that matters. Roughly,
it is like md5sum for *.h header file in C. If you touch anything
(except for comments and whitespaces), it is going to change.
Let's see how fpc.req works.
$ ppudump -vhim /usr/lib64/fpc/units/x86_64-linux/rtl/video.ppu |grep 'Uses unit'
Uses unit: System (Crc: FD1DCAB2, IntfcCrc: C9BB6DA6)
Uses unit: BaseUnix (Crc: 28B09EAB, IntfcCrc: 4154D53F)
Uses unit: termio (Crc: 0E166AC3, IntfcCrc: F4A7EF5D)
Uses unit: strings (Crc: CBE34EC8, IntfcCrc: 6C92FC9D)
Uses unit: linuxvcs (Crc: 672570A1, IntfcCrc: 74ABE23D)
$
$ /usr/lib/rpm/fpc.req <<</usr/lib64/fpc/units/x86_64-linux/rtl/video.ppu
fpc(baseunix) = 78-4154D53F
fpc(linuxvcs) = 78-74ABE23D
fpc(strings) = 78-6C92FC9D
fpc(system) = 78-C9BB6DA6
fpc(termio) = 78-F4A7EF5D
$
So, fpc.req simply transforms 'Uses init' references into dependencies.
Note that interface checksum (IntfcCrc) is used, not full checksum (Crc);
the latter also includes implementation section. So, if it is possible
to improve implementation without changeing the interface, the
dependency will not change.
Let's now examine fpc.prov with e.g. baseunix.
$ ppudump -vh /usr/lib64/fpc/units/x86_64-linux/rtl/baseunix.ppu
PPU-Analyser Version 2.2.0
Copyright (c) 1998-2007 by the Free Pascal Development Team
Analyzing /usr/lib64/fpc/units/x86_64-linux/rtl/baseunix.ppu (v78)
Header
-------
Compiler version : 2.2.0
Target processor : x86_64
Target operating system : Linux-x86-64
Unit flags : static_linked, little_endian, release, local_threadvars, local_symtable
FileSize (w/o header) : 115054
Checksum : 28B09EAB
Interface Checksum : 4154D53F
Definitions stored : 410
Symbols stored : 1771
(no exported macros)
$ /usr/lib/rpm/fpc.prov <<</usr/lib64/fpc/units/x86_64-linux/rtl/baseunix.ppu
fpc(baseunix) = 78-4154D53F
$
So, now we see that video.ppu requires and baseunix.ppu provides
the same dependency, based on ppu interface checksum.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 197 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20090424/cfe9c0db/attachment.bin>
Подробная информация о списке рассылки Devel