ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] FAILED fpc.git=2.2.4-alt1
Date: Fri, 24 Apr 2009 22:04:10 +0400
Message-ID: <20090424180410.GO9391@altlinux.org> (raw)
In-Reply-To: <9d5146970904241042q273c711u7dee29a028bc09a4@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2719 bytes --]

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.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

  reply	other threads:[~2009-04-24 18:04 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-24 15:56 ` [devel] [#5365] " Slava Dubrovskiy
2009-04-24 16:10   ` [devel] " Alexey Tourbin
2009-04-24 16:35     ` Slava Dubrovskiy
2009-04-24 16:42       ` Alexey Tourbin
2009-04-24 16:46         ` Slava Dubrovskiy
2009-04-24 16:54           ` Alexey Tourbin
2009-04-24 17:01             ` Slava Dubrovskiy
2009-04-24 17:42             ` Afanasov Dmitry
2009-04-24 18:04               ` Alexey Tourbin [this message]
2009-04-24 18:25                 ` Afanasov Dmitry
2009-04-24 19:02                   ` Andrey Rahmatullin
2009-04-24 16:42       ` Afanasov Dmitry
2009-04-24 16:47         ` Slava Dubrovskiy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090424180410.GO9391@altlinux.org \
    --to=at@altlinux.ru \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git