recent port upgrades causing missing libraries

Kimmo Paasiala kpaasial at gmail.com
Tue Dec 11 17:58:31 UTC 2012


On Tue, Dec 11, 2012 at 6:57 PM, Jeremy Messenger
<mezz.freebsd at gmail.com> wrote:
> On Tue, Dec 11, 2012 at 10:25 AM, Bryan Drewery <bryan-lists at shatow.net> wrote:
>> On 12/11/2012 10:21 AM, Jeremy Messenger wrote:
>>> On Tue, Dec 11, 2012 at 9:45 AM, Bryan Drewery <bryan-lists at shatow.net> wrote:
>>>> On 12/11/2012 9:03 AM, Adam McDougall wrote:
>>>>> I used poudriere to build pkgng packages from the latest round
>>>>> of port updates since the freeze.  I know in the commit message
>>>>> for xcb-util it bumped some other ports, but it seems like not
>>>>> enough to make poudriere reinstall enough packages to make things
>>>>> work.
>>>>
>>>>
>>>> Poudriere does the right thing here, it recompiles all affected ports.
>>>>
>>>> The pcre upgrade also caused some problems.  I'm sorry that
>>>>> I don't have time to make an extensive report of ports vs. libraries
>>>>> or a PR but I can add some brief details.  Using pkg install -fR
>>>>> on xcb-util and pcre cured the issues for now, but that doesn't mean
>>>>> I've caught them all.  pkg_libchk doesn't work with pkgng.  I could
>>>>> have told pkg to reinstall all packages but that is a big hammer.
>>>>
>>>> The problem then comes here, pkgng doesn't automatically know that ports
>>>> have been rebuilt (without PORTREVISION bumps) or that their checksums
>>>> do not match, unless you use pkg install -fR on the proper packages.
>>>>
>>>> I've written a script that does the same as `portmaster -w`, which will
>>>> preserve old libraries when running `pkg upgrade`, which will at least
>>>> prevent a broken system while you use pkg_libchk to force reinstall
>>>> affected packages:
>>>>
>>>> https://gist.github.com/3099160
>>>
>>> I don't think the 'portmaster -w' will help with his issue. His issue
>>> is pretty mess up, because his binaries below have been compiled with
>>> old and new library at the same time. For some reason, it doesn't
>>> uninstall (or move when use 'portmaster -w') old libraries first
>>> before build with new libraries.
>>
>> There's no portmaster involved here. I only mention it as an example.
>> This is purely pkgng using binary packages.
>
> He built his own package by using poudriere. The question is that why
> did it allows linked with old and new libraries at the same time? It
> should be uninstall old libraries first before compile/link with new
> libraries.
>

Poudriere is not the problem here because it builds everything
everytime in a clean jail. The problem is the way pkg-install(8)
detects if a package needs to re-installed, if there's no portrevision
bump it won't re-install the package even if the package has been
linked against new shared libraries.

-Kimmo


More information about the freebsd-ports mailing list