Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 Jan 2021 11:48:46 -0700
From:      Gary Aitken <freebsd@dreamchaser.org>
To:        Polytropon <freebsd@edvax.de>
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:  <23af1d90-df20-adcf-81ad-1bce4dbbbd4e@dreamchaser.org>
In-Reply-To: <20210130192250.bb8ac8f1.freebsd@edvax.de>
References:  <5dfb1c4a-d7b3-2059-c76e-7cfd1490c812@dreamchaser.org> <20210130170828.0299f4b5@gumby.homeunix.com> <20210130171424.b9e0f55048c5c3b9cff042f5@sohara.org> <a5ecd149-70f9-db5c-8bcb-db122492718f@dreamchaser.org> <20210130192250.bb8ac8f1.freebsd@edvax.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On 1/30/21 11:22 AM, Polytropon wrote:
> 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.

But, as you point out later, they will not be re-installed without manually
deinstalling first.  Which is my point.  Why would one go through this
process without deinstalling first?  Because you want to keep the existing
dependencies to run existing stuff?  I can see that, but after doing this
without deinstalling first your whole set of configurations is inconsistent
with what you are running, and you have no way to really know how your running
system is configured.

>> 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.

thanks for the clear explanation

>> 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.

I understand now how it works; I still question why it works that way, since
it leaves you with a system whose configuration you can't determine.

Gary





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?23af1d90-df20-adcf-81ad-1bce4dbbbd4e>