Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Apr 2011 18:34:36 -0600 (MDT)
From:      Warren Block <wblock@wonkity.com>
To:        Chris Telting <christopher-ml@telting.org>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Port dependencies
Message-ID:  <alpine.BSF.2.00.1104011810220.2499@wonkity.com>
In-Reply-To: <4D96668C.3090406@telting.org>
References:  <4D96668C.3090406@telting.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 1 Apr 2011, Chris Telting wrote:

> One of my biggest gripes with the ports system is dependency hell.  Ports 
> link against so my optional components and pull them into the install. 
> Libraries and components are built based on make file defines.  But this 
> doesn't have to be so.  It's possible and easy enough to check a running 
> system for which libraries are installed and only if a feature is enabled to 
> load the library.

Port Makefiles already have BUILD_DEPENDS, RUN_DEPENDS, and LIB_DEPENDS, 
which do this automatically.

> The number of console programs that want to pull in X window or kde is 
> my boggling.

Those would not really be console programs, then, or their dependencies 
are directly or indirectly dependent on X or KDE.

> Knowing how to program myself when I see a "make config" menu on every 
> single port it makes me want to cry.  I think the "make config" menus 
> should have everything checked by default and only be provided to 
> prevent things from being compiled such as for embedded devices.

You are mistaken about what the config options do.  For example, I have 
hal installed, but don't want to use it when building xorg-server.  The 
config options make that easy.

> My question is why is this so?  Why can't programs do more run time 
> configuration?  Is a configuration run time system library needed to 
> make it easier?

Letting the user explicitly configure what they want is better than just 
assuming based on what they have installed.

If you really want to avoid the config options, set the BATCH variable 
in make.conf or on the command line.  Or use config-recursive to get all 
of the config options over with at the beginning of the build.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1104011810220.2499>