Opened 21 years ago

Closed 19 years ago

#804 closed defect (fixed)

Need to allow a better specification of library dependencies

Reported by: gwright@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: base Version: 1.0
Keywords: Cc:
Port:

Description

The specification of library dependencies is inadequate. If incompatible libraries are installed in /usr/lib or /usr/local/lib, they may be detected as satisfied dependencies and linked into programs built under darwinports. The result is often a failed build or runtime error.

The proposed fix is to allow a more precise specification of dependencies: some dependencies _must_ be satisfied by something installed in $[prefix}/[lib, bin]. That way ports that require a specific dependency won't be broken by something the user has installed into /usr/lib or /usr/local/lib.

Note that it may also be required to have configure.env default to LDFLAGS=-L${prefix}/lib and CPPFLAGS=-I${prefix}/include (and perhaps CFLAGS=-I${prefix}/include) to ensure that the darwinports are searched first.

This problem has arisen before and appears to be one of the difficulties that advanced users (who may frequently build software from GNU sourece tarballs) have with darwinports.

I call the proposed behavior the 'small world' assumption. Darwinports assumes that its dependencies are fulfilled by files built from darwinports. (XFree86 should remain ane exception, since nearly everyone downloads it from Apple. Perhaps Tcl is another exception.) The alternative, to let darwinports search /usr/lib and /usr/local/lib, I call the 'wide world' assumption. I would make 'small world' the default and 'wide world', for example by setting 'wide_world yes', and option.

Change History (1)

comment:1 Changed 19 years ago by gwright@…

Resolution: fixed
Status: newclosed

The port: dependency specifier has essentially fixed the issue raised in this RFE.

-Greg

Note: See TracTickets for help on using tickets.