Problem managing ports vs base ncurses

David Demelier demelier.david at
Fri Mar 11 10:24:47 UTC 2011

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/ Shared object "" 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/ Shared object "" not found, 
required by "xgettext"
/libexec/ Shared object "" not found, 
required by "msgmerge"
/libexec/ Shared object "" 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:

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 
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: => /lib/ (0x80080b000) => /lib/ (0x80092b000) => /lib/ (0x800a44000) => /usr/local/lib/ (0x800b59000) => /lib/ (0x800d01000) => /lib/ (0x800e32000) => /usr/local/lib/ (0x800f42000) => /usr/local/lib/ (0x8010aa000) => /usr/local/lib/ (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.


David Demelier

More information about the freebsd-ports mailing list