Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
The most recent proposed patch [1] in this bug removes the rationale about ldconfig seeing dpkg's temporary files if you call it at the wrong point in the maintainer scripts. I'd like to suggest that this rationale should be retained, if only in a footnote. Would the proposer or the seconders object to retaining the following text from the existing paragraph in policy, with appropriate editorial changes so that it fits with the new text? [...] as `ldconfig' will see the temporary names that `dpkg' uses for the files while it is installing them and will make the shared library links point to them, just before `dpkg' continues the installation and renames the temporary files! [1] [EMAIL PROTECTED] -- Colin Watson [EMAIL PROTECTED] -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
On Sat, Jun 29, 2002 at 06:50:41PM +0100, Colin Watson wrote: The most recent proposed patch [1] in this bug removes the rationale about ldconfig seeing dpkg's temporary files if you call it at the wrong point in the maintainer scripts. I'd like to suggest that this rationale should be retained, if only in a footnote. Would the proposer or the seconders object to retaining the following text from the existing paragraph in policy, with appropriate editorial changes so that it fits with the new text? I do not object. Retaining the rationale is a good idea. -S -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
On Mon, Sep 10, 2001 at 05:16:27PM +0100, Julian Gilbey wrote: On Sat, Sep 08, 2001 at 06:55:56PM -0400, Steve M. Robbins wrote: postrm -- An installed shared lib has been removed from the system just before postrm remove is run. This is the proper time to call ldconfig to notify the system of that fact. Current policy has this as a SHOULD requirement. I still haven't found out why it is not MUST. I wonder whether it's because the installed library won't be found if the postinst ldconfig is not run, but an extra dangling symlink or similar following a remove is not such a problem. Yes, it is less harmful to have a dangling symlink than to not have the symlink when required. My conjecture is that the former was only a SHOULD to avoid creating RC bugs. I was hoping that someone on -policy would remember whether that is the case or not. By the way, my investigation of 6507 packages (the i386 archive of a few days ago) show that perhaps 106 (or 1.6%) postrm scripts lack ldconfig when they should have it, so changing the requirement for postrm isn't really creating a huge whack of new bugs. For reference, 64 postinst scripts have the same problem (which *is* RC) -S -- by Rocket to the Moon, by Airplane to the Rocket, by Taxi to the Airport, by Frontdoor to the Taxi, by throwing back the blanket and laying down the legs ... - They Might Be Giants
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
I hereby second [EMAIL PROTECTED]. -- G. Branden Robinson| There's nothing an agnostic can't Debian GNU/Linux | do if he doesn't know whether he [EMAIL PROTECTED] | believes in it or not. http://people.debian.org/~branden/ | -- Graham Chapman pgpSIRY9fQf4K.pgp Description: PGP signature
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
On Sat, Sep 08, 2001 at 06:55:56PM -0400, Steve M. Robbins wrote: I am proposing the following patch to policy. The difference from my previous proposal is to allow calling ldconfig in the postinst no matter what the arguments are. Detailed rationale follows, below. --- policy.sgml.orig Sat Sep 8 16:12:53 2001 +++ policy.sgml Sat Sep 8 17:06:01 2001 @@ -3711,21 +3711,16 @@ /list /p /footnote - must call prgnldconfig/prgn in its prgnpostinst/prgn - script if the first argument is ttconfigure/tt and should - call it in the prgnpostrm/prgn script if the first - argument is ttremove/tt. - /p - - p - However, prgnpostrm/prgn and prgnpreinst/prgn scripts - emmust not/em call prgnldconfig/prgn in the case where - the package is being upgraded (see ref id=unpackphase for - details), as prgnldconfig/prgn will see the temporary - names that prgndpkg/prgn uses for the files while it is - installing them and will make the shared library links point - to them, just before prgndpkg/prgn continues the - installation and renames the temporary files! + must use prgnldconfig/prgn to update the shared library + system. The package must call prgnldconfig/prgn in the + prgnpostinst/prgn script if the first argument is + ttconfigure/tt; the prgnpostinst/prgn script may + optionally invoke prgnldconfig/prgn at other times. The + package should call prgnldconfig/prgn in the + prgnpostrm/prgn script if the first argument is + ttremove/tt. The maintainer scripts must not invoke + prgnldconfig/prgn under any circumstances other than those + described in this paragraph. /p I second this proposal in this version. postrm -- An installed shared lib has been removed from the system just before postrm remove is run. This is the proper time to call ldconfig to notify the system of that fact. Current policy has this as a SHOULD requirement. I still haven't found out why it is not MUST. I wonder whether it's because the installed library won't be found if the postinst ldconfig is not run, but an extra dangling symlink or similar following a remove is not such a problem. Julian -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Julian Gilbey, Dept of Maths, Queen Mary, Univ. of London Debian GNU/Linux Developer, see http://people.debian.org/~jdg NEW: Visit http://www.helpthehungry.org/ to do just that pgpuplMwx8SML.pgp Description: PGP signature
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
On Sat, Sep 08, 2001 at 06:55:56PM -0400, Steve M. Robbins wrote: --- policy.sgml.orig Sat Sep 8 16:12:53 2001 +++ policy.sgml Sat Sep 8 17:06:01 2001 @@ -3711,21 +3711,16 @@ /list /p /footnote - must call prgnldconfig/prgn in its prgnpostinst/prgn - script if the first argument is ttconfigure/tt and should - call it in the prgnpostrm/prgn script if the first - argument is ttremove/tt. - /p - - p - However, prgnpostrm/prgn and prgnpreinst/prgn scripts - emmust not/em call prgnldconfig/prgn in the case where - the package is being upgraded (see ref id=unpackphase for - details), as prgnldconfig/prgn will see the temporary - names that prgndpkg/prgn uses for the files while it is - installing them and will make the shared library links point - to them, just before prgndpkg/prgn continues the - installation and renames the temporary files! + must use prgnldconfig/prgn to update the shared library + system. The package must call prgnldconfig/prgn in the + prgnpostinst/prgn script if the first argument is + ttconfigure/tt; the prgnpostinst/prgn script may + optionally invoke prgnldconfig/prgn at other times. The + package should call prgnldconfig/prgn in the + prgnpostrm/prgn script if the first argument is + ttremove/tt. The maintainer scripts must not invoke + prgnldconfig/prgn under any circumstances other than those + described in this paragraph. /p sect Seconded. -- Debian GNU/Linux 2.2 is out! ( http://www.debian.org/ ) Email: Herbert Xu ~{PmVHI~} [EMAIL PROTECTED] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
I am proposing the following patch to policy. The difference from my previous proposal is to allow calling ldconfig in the postinst no matter what the arguments are. Detailed rationale follows, below. --- policy.sgml.origSat Sep 8 16:12:53 2001 +++ policy.sgml Sat Sep 8 17:06:01 2001 @@ -3711,21 +3711,16 @@ /list /p /footnote - must call prgnldconfig/prgn in its prgnpostinst/prgn - script if the first argument is ttconfigure/tt and should - call it in the prgnpostrm/prgn script if the first - argument is ttremove/tt. - /p - - p - However, prgnpostrm/prgn and prgnpreinst/prgn scripts - emmust not/em call prgnldconfig/prgn in the case where - the package is being upgraded (see ref id=unpackphase for - details), as prgnldconfig/prgn will see the temporary - names that prgndpkg/prgn uses for the files while it is - installing them and will make the shared library links point - to them, just before prgndpkg/prgn continues the - installation and renames the temporary files! + must use prgnldconfig/prgn to update the shared library + system. The package must call prgnldconfig/prgn in the + prgnpostinst/prgn script if the first argument is + ttconfigure/tt; the prgnpostinst/prgn script may + optionally invoke prgnldconfig/prgn at other times. The + package should call prgnldconfig/prgn in the + prgnpostrm/prgn script if the first argument is + ttremove/tt. The maintainer scripts must not invoke + prgnldconfig/prgn under any circumstances other than those + described in this paragraph. /p sect On Wed, Sep 05, 2001 at 06:21:36PM +1000, Herbert Xu wrote: On Tue, Sep 04, 2001 at 08:53:20PM -0400, Steve M. Robbins wrote: On Mon, Sep 03, 2001 at 06:52:55PM +1000, Herbert Xu wrote: Would there be a problem with enshrining this with the following policy simplification? Nope. It still has the same problem, i.e., all packages simply doing a ldconfig in their postinst is now violating the policy. This is true. It raises two questions in my mind. 1. Is it a useful thing to run ldconfig unconditionally in postinst? 2. How many packages would acquire bugs if we disallowed it? After combing through the details of maintainer scripts and their interaction described in Policy Chapter 6, I have concluded that the answer to question 1 is no. I'll present details below. To answer question 2, I had a look at packages in the current pool and counted how many bugs would be induced by the change. I ran a patched version of lintian incorporating extra checks for shared libs (see Bug#110465) on all the -i386.deb files of auric's pool: find /org/ftp.debian.org/ftp/pool/main -name '*-i386.deb' | xargs -l1 lintian --root ~/lintian/lintian-1.20.14.2 -C shared-libs [I wanted to avoid scanning each package for each architecture. I had intended to look at the i386 architecture to get the largest sample, but I see now that I goofed and only captured hurd-i386... I'm re-running on *_i386 now, but I don't expect the larger sample to change the results, so I'm sending this email now.] The complete output in ~smr/check-libs on auric. When I did this, a couple nights ago, there were 1991 such files. I turned up 149 that may call ldconfig in the postinst without checking that the argument is configure. The lintian check will report any postinst script that calls ldconfig without prefixing it by 'if [ $1 = configure ]; then'. Scripts that use a case statement instead are thus included in the output, meaning that the problem may be overestimated. At any rate, 151/1991 is about 8% which is more than I had bargained for. I therefore modified the proposed policy change, as already described. Now, it is true that my proposed change remains more restrictive than strictly necessary. It forbids, for example, calling ldconfig during postrm purge. That is certainly no loss as postrm remove always runs before postrm purge. Branden Robinson, Herbert Xu, and Steve Greenland have already indicated support for an alternative, more conservative wording that simply forbids running ldconfig in circumstances known to be harmful. I considered this approach, but I believe the current proposal is superior for its simplicity. It is less mental work to comprehend you should invoke ldconfig in these 2 circumstances; you may also do it in a third circumstance, but no others are permitted than you should invoke ldconfig in these 2 circumstances; you must not invoke it in these four circumstances In the second case, one is left wondering about cases neither mandated nor forbidden. It is easier to write a heuristic checker for the first formulation, for a similar reason. I have gone through the maintainer script details described in chapter 6, with an eye to how they relate to shared libs and ldconfig. For each
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
Steve Greenland [EMAIL PROTECTED] wrote: On 05-Sep-01, 16:52 (CDT), Herbert Xu [EMAIL PROTECTED] wrote: Vociferous Mole [EMAIL PROTECTED] wrote: So? Isn't it a bug? This isn't a case of a policy change creating a bug, but of a existing bug being highlighted by the policy clarification. It doesn't break anything, so it's not a bug. I thought we just established that calling ldconfig during 'postinst upgrade' is wrong. Therefore, all packages simply doing a ldconfig Where did we establish that? Please point me to the msgid. -- Debian GNU/Linux 2.2 is out! ( http://www.debian.org/ ) Email: Herbert Xu ~{PmVHI~} [EMAIL PROTECTED] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
Branden Robinson [EMAIL PROTECTED] wrote: On Tue, Sep 04, 2001 at 08:53:20PM -0400, Steve M. Robbins wrote: Perhaps the intention of the section 9 paragraph (above) was to say However, the postrm script must not call ldconfig if invoked with the argument upgrade, failed-upgrade, or disappear. The preinst script must not call ldconfig if invoked with the argument abort-upgrade. However, that is a bit longwinded and fairly confusing. It seems neither to me. The fact that a lot of maintainers are likely Agreed. If someone can turn that into a diff, I will second it. BTW, what is it with all the Steves in this thread? :) -- Debian GNU/Linux 2.2 is out! ( http://www.debian.org/ ) Email: Herbert Xu ~{PmVHI~} [EMAIL PROTECTED] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Re: Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
On 06-Sep-01, 06:59 (CDT), Herbert Xu [EMAIL PROTECTED] wrote: BTW, what is it with all the Steves in this thread? :) Is your problem that there are so many of us, or that we seem to be excessively dim? I personally blame insufficient caffiene... Steve Greenland (No offense intended to Mr. Robbins -- add smileys as desired.)
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
Steve Greenland [EMAIL PROTECTED] wrote: On 06-Sep-01, 06:59 (CDT), Herbert Xu [EMAIL PROTECTED] wrote: BTW, what is it with all the Steves in this thread? :) Is your problem that there are so many of us, or that we seem to be excessively dim? I personally blame insufficient caffiene... Three Steves in one thread... Anyway, I now know that it's only two Steves :) -- Debian GNU/Linux 2.2 is out! ( http://www.debian.org/ ) Email: Herbert Xu ~{PmVHI~} [EMAIL PROTECTED] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
On Mon, Sep 03, 2001 at 06:52:55PM +1000, Herbert Xu wrote: Steve M. Robbins [EMAIL PROTECTED] wrote: --- policy.sgml.origSun Sep 2 22:50:21 2001 +++ policy.sgml Sun Sep 2 22:52:26 2001 @@ -3718,7 +3718,7 @@ /p p - However, prgnpostrm/prgn and prgnpreinst/prgn scripts + However, prgnpostrm/prgn and prgnpostinst/prgn scripts emmust not/em call prgnldconfig/prgn in the case where the package is being upgraded (see ref id=unpackphase for details), as prgnldconfig/prgn will see the temporary Objection. There's nothing wrong with calling ldconfig in the postinst durinag an upgrade. Indeed, you are correct. That deepens the mystery of what this paragraph is supposed to mean, because it is equally true that there is no problem in calling preinst during an upgrade. The issue is to avoid calling ldconfig when a temporary copy of a shared lib exists on-disk. In section 6.5, the following scripts are (possibly) invoked during this critical phase: old-postrm upgrade new-version new-postrm failed-upgrade old-version old-preinst abort-upgrade new-version disappearers-postrm disappear overwriter overwriter-version Perhaps the intention of the section 9 paragraph (above) was to say However, the postrm script must not call ldconfig if invoked with the argument upgrade, failed-upgrade, or disappear. The preinst script must not call ldconfig if invoked with the argument abort-upgrade. However, that is a bit longwinded and fairly confusing. As far as I can see, the correct times to call ldconfig are precisely: (a) in postinst configure and (b) in postrm remove. Situation (a) handles the case of a new or upgraded lib, and (b) handles the case when the shared lib vanishes for good. Indeed, these two calls are exactly what the dh_makeshlibs will insert into the pre/post scripts when building a package. [As a bonus, ldconfig is only called once during an upgrade since the old-postrm is called with the argument upgrade rather than remove.] Would there be a problem with enshrining this with the following policy simplification? -Steve P.S. If anyone remembers, why is it that the postinst rule is a must, while the postrm rule is a should? --- policy.sgml.origSun Sep 2 22:50:21 2001 +++ policy.sgml Tue Sep 4 20:50:04 2001 @@ -3714,18 +3714,8 @@ must call prgnldconfig/prgn in its prgnpostinst/prgn script if the first argument is ttconfigure/tt and should call it in the prgnpostrm/prgn script if the first - argument is ttremove/tt. - /p - - p - However, prgnpostrm/prgn and prgnpreinst/prgn scripts - emmust not/em call prgnldconfig/prgn in the case where - the package is being upgraded (see ref id=unpackphase for - details), as prgnldconfig/prgn will see the temporary - names that prgndpkg/prgn uses for the files while it is - installing them and will make the shared library links point - to them, just before prgndpkg/prgn continues the - installation and renames the temporary files! + argument is ttremove/tt. Apart from these two circumstances, + the maintainer scripts must not call prgnldconfig/prgn. /p sect -- by Rocket to the Moon, by Airplane to the Rocket, by Taxi to the Airport, by Frontdoor to the Taxi, by throwing back the blanket and laying down the legs ... - They Might Be Giants
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
On Tue, Sep 04, 2001 at 08:53:20PM -0400, Steve M. Robbins wrote: Perhaps the intention of the section 9 paragraph (above) was to say However, the postrm script must not call ldconfig if invoked with the argument upgrade, failed-upgrade, or disappear. The preinst script must not call ldconfig if invoked with the argument abort-upgrade. However, that is a bit longwinded and fairly confusing. It seems neither to me. The fact that a lot of maintainers are likely ignorant of the details of maintainer script invocation (this isn't a rip on other developers -- I personally went for far longer than I should I have without a good understanding of what is now Policy 6.5) may make it seem that way, but I see nothing wrong with the language above. -- G. Branden Robinson| Debian GNU/Linux | If encryption is outlawed, only [EMAIL PROTECTED] | outlaws will @goH7Ok=q4fDj]Kz?. http://people.debian.org/~branden/ | pgpBe8vZ39gIi.pgp Description: PGP signature
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
On Tue, Sep 04, 2001 at 08:53:20PM -0400, Steve M. Robbins wrote: On Mon, Sep 03, 2001 at 06:52:55PM +1000, Herbert Xu wrote: Would there be a problem with enshrining this with the following policy simplification? Nope. It still has the same problem, i.e., all packages simply doing a ldconfig in their postinst is now violating the policy. -- Debian GNU/Linux 2.2 is out! ( http://www.debian.org/ ) Email: Herbert Xu ~{PmVHI~} [EMAIL PROTECTED] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
On Tue, Sep 04, 2001 at 08:53:20PM -0400, Steve M. Robbins wrote: --- policy.sgml.orig Sun Sep 2 22:50:21 2001 +++ policy.sgml Tue Sep 4 20:50:04 2001 @@ -3714,18 +3714,8 @@ must call prgnldconfig/prgn in its prgnpostinst/prgn script if the first argument is ttconfigure/tt and should call it in the prgnpostrm/prgn script if the first - argument is ttremove/tt. - /p - - p - However, prgnpostrm/prgn and prgnpreinst/prgn scripts - emmust not/em call prgnldconfig/prgn in the case where - the package is being upgraded (see ref id=unpackphase for - details), as prgnldconfig/prgn will see the temporary - names that prgndpkg/prgn uses for the files while it is - installing them and will make the shared library links point - to them, just before prgndpkg/prgn continues the - installation and renames the temporary files! + argument is ttremove/tt. Apart from these two circumstances, + the maintainer scripts must not call prgnldconfig/prgn. /p sect This seems like the most sensible approach to me. I would second this. -- Chris Waters | Pneumonoultra-osis is too long [EMAIL PROTECTED] | microscopicsilico-to fit into a single or [EMAIL PROTECTED] | volcaniconi- standalone haiku
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
On 05-Sep-01, 04:21 (EDT), Herbert Xu [EMAIL PROTECTED] wrote: On Tue, Sep 04, 2001 at 08:53:20PM -0400, Steve M. Robbins wrote: On Mon, Sep 03, 2001 at 06:52:55PM +1000, Herbert Xu wrote: Would there be a problem with enshrining this with the following policy simplification? Nope. It still has the same problem, i.e., all packages simply doing a ldconfig in their postinst is now violating the policy. So? Isn't it a bug? This isn't a case of a policy change creating a bug, but of a existing bug being highlighted by the policy clarification. Steve
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
Vociferous Mole [EMAIL PROTECTED] wrote: So? Isn't it a bug? This isn't a case of a policy change creating a bug, but of a existing bug being highlighted by the policy clarification. It doesn't break anything, so it's not a bug. -- Debian GNU/Linux 2.2 is out! ( http://www.debian.org/ ) Email: Herbert Xu ~{PmVHI~} [EMAIL PROTECTED] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
On 05-Sep-01, 16:52 (CDT), Herbert Xu [EMAIL PROTECTED] wrote: Vociferous Mole [EMAIL PROTECTED] wrote: So? Isn't it a bug? This isn't a case of a policy change creating a bug, but of a existing bug being highlighted by the policy clarification. It doesn't break anything, so it's not a bug. I thought we just established that calling ldconfig during 'postinst upgrade' is wrong. Therefore, all packages simply doing a ldconfig in their postinst (as you wrote, and which I interpreted as without checking their arguments) are doing the wrong thing during an upgrade. If that is not what you meant, please clarify. I don't see how the proposed change causes a problem for packages that aren't already doing calling ldconfig inappropriately. Steve
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
Steve M. Robbins [EMAIL PROTECTED] wrote: --- policy.sgml.origSun Sep 2 22:50:21 2001 +++ policy.sgml Sun Sep 2 22:52:26 2001 @@ -3718,7 +3718,7 @@ /p p - However, prgnpostrm/prgn and prgnpreinst/prgn scripts + However, prgnpostrm/prgn and prgnpostinst/prgn scripts emmust not/em call prgnldconfig/prgn in the case where the package is being upgraded (see ref id=unpackphase for details), as prgnldconfig/prgn will see the temporary Objection. There's nothing wrong with calling ldconfig in the postinst durinag an upgrade. This change instantly creats a bucket load of RC bugs for no good reason. -- Debian GNU/Linux 2.2 is out! ( http://www.debian.org/ ) Email: Herbert Xu ~{PmVHI~} [EMAIL PROTECTED] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Bug#111025: debian-policy: typo in chapter 9: ldconfig and pre/post scripts
Package: debian-policy Version: 3.5.6.0 Severity: wishlist Hello, In chapter 9, the last two paragraphs of the first section discuss when to call ldconfig for packages that install shared libs. The penultimate paragraph mentions POSTinst and POSTrm. The last paragraph then mentions PREinst, but that is a typo that should really be POSTinst. --- policy.sgml.origSun Sep 2 22:50:21 2001 +++ policy.sgml Sun Sep 2 22:52:26 2001 @@ -3718,7 +3718,7 @@ /p p - However, prgnpostrm/prgn and prgnpreinst/prgn scripts + However, prgnpostrm/prgn and prgnpostinst/prgn scripts emmust not/em call prgnldconfig/prgn in the case where the package is being upgraded (see ref id=unpackphase for details), as prgnldconfig/prgn will see the temporary -Steve For reference, here is the current full text of the two paragraphs. Any package installing shared libraries in one of the default library directories of the dynamic linker (which are currently /usr/lib and /lib) or a directory that is listed in /etc/ld.so.conf[29] must call ldconfig in its postinst script if the first argument is configure and should call it in the postrm script if the first argument is remove. However, postrm and preinst scripts must not call ldconfig in the case where the package is being upgraded (see Details of unpack phase of installation or upgrade, Section 6.5 for details), as ldconfig will see the temporary names that dpkg uses for the files while it is installing them and will make the shared library links point to them, just before dpkg continues the installation and renames the temporary files! -- System Information Debian Release: testing/unstable Kernel Version: Linux riemann 2.4.9 #1 Wed Aug 22 13:17:14 EDT 2001 i686 unknown Versions of the packages debian-policy depends on: ii fileutils 4.1-7 GNU file management utilities.