ports/65887: mutt and mutt-devel can silently depend on libiconv

Yar Tikhiy yar at comp.chem.msu.su
Thu Apr 22 13:40:20 UTC 2004


>Number:         65887
>Category:       ports
>Synopsis:       mutt and mutt-devel can silently depend on libiconv
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Apr 22 06:40:19 PDT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Yar Tikhiy
>Release:        FreeBSD 4.9-RELEASE-p4 i386
>Organization:
Moscow State University
>Environment:
	The FreeBSD ports collection as of the 22nd of April, 2004.

>Description:
	Mutt can make use of an iconv library installed in the
	system to perform conversions between mail charsets.  While
	iconv is not a prerequisite for building the mail/mutt (or
	mail/mutt-devel) port, Mutt's configure script will try to
	locate a version of the library.  In a FreeBSD-based system,
	it will typically find that provided by the converters/libiconv
	ports, or none at all.

	In the former case, the mutt port will fail to record
	dependency on libiconv upon installation because the
	dependency is weak and thus not listed in the Makefile.
	Among unpleasant consequences are broken recursive updates
	with portupgrade, possibility to delete libiconv leaving
	mutt non-functional, and the respective dependency of the
	package missing if the latter has been built with libiconv
	installed.

	The problem won't manifest itself by default because mutt
	defaults to require gettext, which in turn requires libiconv.
	However, setting WITHOUT_NLS for mutt is enough to reveal
	the problem.

	Some other ports using gettext and libiconv may suffer from
	this bug, too.

>How-To-Repeat:
	(1) Install the libiconv port.
	(2) Set WITHOUT_NLS.
	(3) Install the mutt (or mutt-devel) port.
	(4) See the mutt binary linked to libiconv, but no respective
	    dependency in /var/db/pkg/libiconv*/+REQUIRED_BY.

>Fix:
	An easy way is to add ``USE_ICONV=yes'' to the mutt Makefiles.
	A harder approach is to implement conditional dependencies
	within the ports framework, that is to let ports tell,
	"I could use the port foo if it were installed already;
	never mind otherwise."
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list