Problem managing ports vs base ncurses

Chris Rees utisoft at gmail.com
Fri Mar 11 21:28:59 UTC 2011


On 11 March 2011 10:23, David Demelier <demelier.david at gmail.com> wrote:
> On 08/03/2011 21:14, Warren Block wrote:
>>
>> On Tue, 8 Mar 2011, Ruslan Mahmatkhanov wrote:
>>
>>> 08.03.2011 21:53, David Demelier пишет:
>>>>
>>>> Hello,
>>>>
>>>> Please append a message in the /usr/ports/UPDATING about the ncurses
>>>> update, I think we need to rebuild every port that depends on :
>>>>
>>>> markand at Groseille ~ $ mplayer
>>>> /libexec/ld-elf.so.1: Shared object "libncurses.so.5.7" not found,
>>>> required by "mplayer"
>>>>
>>>> Thanks.
>>>
>>> As far i understand, ncurses it's a library that placed into base
>>> system, and it updates only when you updating FreeBSD version. General
>>> recommendation about what to do after FreeBSD minor or major update is
>>> to rebuild all the installed ports (i'd did it after `make
>>> delete-old-libs` in /usr/src).
>>
>> Rebuilding all ports should not be necessary for a minor version upgrade
>> of FreeBSD, like 8.1 to 8.2.
>
> There are a lot of ports that are linked to the devel/ncurses port and they
> don't register devel/ncurses as dependency.
>
> checking for gmsgfmt... /usr/local/bin/msgfmt
> /libexec/ld-elf.so.1: Shared object "libncurses.so.5.7" not found, required
> by "xgettext"
> /libexec/ld-elf.so.1: Shared object "libncurses.so.5.7" not found, required
> by "msgmerge"
> /libexec/ld-elf.so.1: Shared object "libncurses.so.5.7" not found, required
> by "msgfmt"
> configure: error: GNU gettext tools not found; required for intltool
>
> (A script failed because of the new ncurses update) and :
>
> markand at Melon /usr/ports/editors/leafpad $ pkg_info -R ncurses-5.8
> Information for ncurses-5.8:
>
> Required by:
> rxvt-unicode-9.10_1
>
> So there is obviously a problem. I think the problem is : a port that need
> ncurses and does not set a RUN_DEPENDS or devel/ncurses will attempt to link
> to the base ncurses or if devel/ncurses is installed it will linked to this
> version but will *NOT* register this depend.
>
> I think we need to add something like USE_NCURSES in the bsd.port.mk
> infrastructure, then the port will look itself if ncurses is available in
> the base system or will add a RUN_DEPENDS that registers the dependency of
> devel/ncurses port.
>
> As you can see:
>
> markand at Melon ~ $ ldd `which qemu`
> /usr/local/bin/qemu:
>        libm.so.5 => /lib/libm.so.5 (0x80080b000)
>        libthr.so.3 => /lib/libthr.so.3 (0x80092b000)
>        libz.so.5 => /lib/libz.so.5 (0x800a44000)
>        libgnutls.so.40 => /usr/local/lib/libgnutls.so.40 (0x800b59000)
>        libpcap.so.7 => /lib/libpcap.so.7 (0x800d01000)
>        libutil.so.8 => /lib/libutil.so.8 (0x800e32000)
>        libSDL-1.2.so.11 => /usr/local/lib/libSDL-1.2.so.11 (0x800f42000)
>        libX11.so.6 => /usr/local/lib/libX11.so.6 (0x8010aa000)
>        libncurses.so.5.8 => /usr/local/lib/libncurses.so.5.8 (0x8012df000)
> [... snip ...]
>
> And :
>
> markand at Melon ~ $ pkg_info -r qemu-0.11.1_6 | grep ncurses
> markand at Melon ~ $
>
> If you deinstall ncurses, qemu will link to the base system.
>

No, the problem is people not following [1]. I'll fix qemu in the
morning to cover this.

Chris

[1] http://www.freebsd.org/doc/en/books/porters-handbook/book.html#AEN2613


More information about the freebsd-ports mailing list