Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 Jan 2021 19:22:50 +0100
From:      Polytropon <freebsd@edvax.de>
To:        freebsd@dreamchaser.org
Cc:        "Steve O'Hara-Smith" <steve@sohara.org>, freebsd-questions@freebsd.org, RW <rwmaillists@googlemail.com>
Subject:   Re: make config-recursive for an individual port
Message-ID:  <20210130192250.bb8ac8f1.freebsd@edvax.de>
In-Reply-To: <a5ecd149-70f9-db5c-8bcb-db122492718f@dreamchaser.org>
References:  <5dfb1c4a-d7b3-2059-c76e-7cfd1490c812@dreamchaser.org> <20210130170828.0299f4b5@gumby.homeunix.com> <20210130171424.b9e0f55048c5c3b9cff042f5@sohara.org> <a5ecd149-70f9-db5c-8bcb-db122492718f@dreamchaser.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 30 Jan 2021 10:43:42 -0700, Gary Aitken wrote:
> On 1/30/21 10:14 AM, Steve O'Hara-Smith wrote:
> > On Sat, 30 Jan 2021 17:08:28 +0000
> > RW via freebsd-questions <freebsd-questions@freebsd.org> wrote:
> > 
> >> Because that's what the "-recursive" part means - configure the current
> >> port and anything it depends on. When you "make install" it will build
> >> the dependencies that aren't already installed.
> 
> I understand the -recursive will configure dependent ports.  What I don't
> understand is why it would configure dependent ports which are already
> installed, since they will not be reinstalled.

They will be re-installed in case you change options. Only a
port with default options equals the already installed package.



> It makes no sense to
> configure them without first uninstalling them.

You can reconfigure them, but only the "make install" step
will require uninstalling them first. The configured options
will stay; for example, running "make configure" will only
allow you to change the options, but nothing else. The
changed options might affect the "make" and "make install"
stage, and might even introduce new dependencies. That
"make configure" step can be done independently of the
already installed package, such as the "make patch"
step would. Only "make install" affects things that are
connected with the already installed port, and "make"
_could_ require (re)installation of dependencies, especially
if those are build dependencies (as opposed to runtime
dependencies) which a certain configuration option might
require.

Example:

You have installed "foo" with the default settings. You
do "make configure" and select "optimization". Now the
dependency lists changes in a way that "bar-asm" is needed
(which it wouldn't for the default settings). You run
"make", and because bar-asm isn't there, it will be
installed. You then run "make install" - and _here_ it
stops because "foo" is still installed. At this stage
de-installation and re-installation is needed, but not
yet at the configuration stage (or even before it).



> It is presuming install - configure - deinstall - build - install
> is a reasonable sequence of operations, where a more reasonable one would
> be install - deinstall - configure - build - install.

Reconfiguring a port does not imply you first have to
uninstall it. As mentioned above, only the installation
step requires uninstallation of the already installed
port, not the configuring step.





-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20210130192250.bb8ac8f1.freebsd>