Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Nov 1997 08:59:06 -0000
From:      Ian Vaudrey <i.vaudrey@cableinet.co.uk>
To:        "'Jordan K. Hubbard'" <jkh@time.cdrom.com>
Cc:        "'ports@freebsd.org'" <ports@FreeBSD.ORG>
Subject:   RE: Ranlib 
Message-ID:  <01BCE901.22C66E00@nemkoltd.nildram.co.uk>

next in thread | raw e-mail | index | archive | help
On 04 November 1997 01:42, Jordan K. Hubbard wrote:
> > I can reproduce the problem with at least one existing port, libmalloc-1.18,
> > I haven't tried any others but if I'm right about the cause it'll happen
> > with any port that has an @exec ranlib line in the PLIST.
> 
> I'll take a look at it.  Like I said, @exec lines aren't even supposed
> to be _run_ by pkg_delete so this would be a very peculiar situation
> of so.

Looks like I'm still not explaining myself properly. As Satoshi said
(with fewer words but greater clarity): "@exec ranlib" is run by pkg_add,
and that changes the md5 checksum, which causes pkg_delete to choke.

> > BTW, the refusal of pkg_delete to delete changed files is something that
> > must've seemed a real good idea at the time, but in practice is a pain in
> > the rear. This is the second time it's bitten me, there should be a way to
> > override it.
> 
> I suppose I could put in an override flag or something, but this
> feature was actually specifically requested by the user base - it
> didn't use to be this way. :)

I can see why it was requested, but in some cases it really is a pain.
Please, please, please add an override flag. After all, I thought it
was part of the Unix philosophy to allow me to shoot myself in the foot
whenever I want :)

> > P.S. So *does* the @exec ranlib line serve any purpose? You of all people
> > will know.
> 
> I'm not sure if this is still true with the GNU loader, but in the
> past even copying a library would generate "symbol table out of date"
> warnings if the internal symbol table had an older creation date than
> the library itself.
> 
> 					Jordan

Extracted from the ranlib man page:

The options are as follows:

-t	Set the modification time of the __.SYMDEF file. Some loaders
	(but not the FreeBSD one) compared this time with the modifica-
	tion time of the archive to verify that the table is up-to-date
	with respect to the archive. If the modification time has been
	changed without any change to the archive (for example, by a
	cp(1)), the -t option can be used to ``touch'' the modification
	time so that it appears that the table is up-to-date. This is
	also useful after using the -t option of make(1).

So it looks like the @exec ranlib line should really be @exec ranlib -t,
but for FreeBSD it is *not* really needed anyway? Is that correct?

 - Ian




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?01BCE901.22C66E00>