Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Dec 2018 20:41:51 +0100
From:      Polytropon <freebsd@edvax.de>
To:        Paul Schmehl <pschmehl_lists@tx.rr.com>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: Forcing port reinstalls without rebuilding over and over again
Message-ID:  <20181212204151.659fb436.freebsd@edvax.de>
In-Reply-To: <1793865D5AEE79C2FC27331F@Pauls-MacBook-Pro.local>
References:  <47758EF2A172AE3BCA2F6E66@Pauls-MacBook-Pro.local> <1793865D5AEE79C2FC27331F@Pauls-MacBook-Pro.local>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 12 Dec 2018 12:52:36 -0600, Paul Schmehl wrote:
> --On December 12, 2018 at 2:07:35 AM -0600 Paul Schmehl 
> <pschmehl_lists@tx.rr.com> wrote:
> 
> > Is there a way, using portmaster, to force the rebuild of all ports
> > without rebuilding the same ports over and over and over again?
> >
> > I've noticed that using portmaster -f forces the rebuild of every
> > dependency. I think I've now rebuild perl and python at least 20 or 30
> > times. Once should be enough. I guess if you're going to rebuild
> > everything, it would be ok to ignore dependencies for ports, since
> > they're all going to be rebuilt anyway.
> >
> > What's the magic potion for that?
> 
> After reading through the man page, I thought that portmaster -Rfd would do 
> the trick, but it didn't.
> 
> ISTM that, when you're building every port on a box, you shouldn't need to 
> build all the dependencies for every port, because they're all going to be 
> built anyway. Rebuilding perl (for example) repeatedly, makes no sense at 
> all. It would be nice if there were a --force-with-no-dependencies switch 
> so that every port could be built once and once only.

Maybe I'm thinking into the wrong direction, but how about
the following thoughts?

The task of building is different from the task of installing.
If you run each build task separatedly, both depencency trees
(build dependencies + runtime dependencies) need to be resolved
from scratch.

For normal usage, and taking your perl example, the following
situation would be present:

1. port "foo" requires perl as a build dependency

2. port "perl" is installed and can then be used

3. port "foo" is built, using the just installed perl

4. port "bar" requires perl as a build dependency

5. port "bar" is build, using the already installed perl
   (and perl is not built again)

It should work the same with runtime dependencies. This thought
experiment includes the assumtion that the correct _versions_ of
perl are always the same. ;-)




-- 
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?20181212204151.659fb436.freebsd>