svn commit: r407270 - head/ports-mgmt/portmaster

Adam Weinberger adamw at adamw.org
Thu Feb 4 16:44:53 UTC 2016


> On 4 Feb, 2016, at 9:31, John Marino <freebsd.contact at marino.st> wrote:
> 
> On 2/4/2016 5:20 PM, Adam Weinberger wrote:
>>> On 4 Feb, 2016, at 9:05, John Marino <freebsd.contact at marino.st>
>>> wrote: hmm?  you're not supposed to rebuild the repository on every
>>> single step.  Only the last step!   there's the "just-build"
>>> option, which always be used.  Now the "rebuild-repository" command
>>> will rebuild it when you want, so you could just issue "just-build"
>>> and when everything is done, manually rebuild the repository.  and
>>> of course, the upgrade-system / prepare-systm only rebuild it once
>>> as well.
>>> 
>>> John
>> 
>> That's assuming that the list of installed ports essentially never
>> changes, and you only check for updates rarely, no?
>> 
>> Say I want to find a new MUA. - Install pine (1 hour) - Too simple -
>> Install elm (1 hour) - Too old - Install mutt (1 hour) - Good but now
>> I want the sidebar patch - Change option and reinstall mutt (1 hour) 
>> - Update ports tree, see if any of my installed ports have updates (1
>> hour)
>> 
>> That's 20 minutes of work but it takes 5 hours. Am I doing the
>> work-flow wrong?
>> 
>> What exactly is going on with the repository rebuild? Why does only
>> synth need to do it? Is there some way to restrict the checks to only
>> the installed ports, rather than the entire tree?
> 
> synth upgrade-system is restricted to the installed ports.  That's what
> it does.  It gets it build list from pkg(8).
> 
> Synth is a local respository builder, that's it's purpose.
> In a nutshell, you get your local respository up to date, and then
> pkg(8) updates everything using that repository.  If you didn't update
> the repository, then pkg(8) doesn't know the package has been built (in
> theory you can use manual pkg(8) commands (e.g. pkg add) to update the
> system without having to rebuilds the repository.

What part of that is taking 60 minutes (or 20 on my beefy home box)? The rebuild-repository step appears to be scanning the entire ports tree, even if I only have two ports that synth is producing pkgs for.

> If you have 5 ports that you want to manually/individually update, then
> you'd use something like "synth install port1 port2 port3 port4 port5".
> That will rebuild everything necessary (incremental), then rebuild the
> repository, then install everything.  You wouldn't do 5 individually
> build/install commands.

Sure, as long as you know in advance what you're going to do. But the (contrived) example I gave was of not knowing in advance which 5 ports you're going to install... it's installing one at a time to find the one you like best. To me that is a natural workflow.

Anyway, my point is just that the incredibly long time for a repository-rebuild, and the fact that I have to wait an hour just to try out a new port with it or to do a simple update, makes it very difficult to adopt.

# Adam


-- 
Adam Weinberger
adamw at adamw.org
http://www.adamw.org




More information about the svn-ports-all mailing list