On May 29, 2018, at 13:31, macpo...@parvis.nl wrote:

> I'm trying to work as much as possible with scripted procedures.
> 
> After an initial install of a new/modified port, I need to apply/change 
> patches.
> 
> My workflow is:
> 
>  port install munin
> 
>  #- cycle start
>  port clean --work munin
>  create patches against the unmodified tarball
>  port clean --work munin
>  port install munin
>  test
>  #- cycle end
> 
> Problem here is that if Portfile  isn't changed, install will skip all 
> phases, including checksum, extract, patch, configure, build, destroot, 
> "install", activate.
> I can port clean --all munin but then I need to fetch again, and that is not 
> needed.

Then don't use "sudo port clean --all". Just use "sudo port clean".

Or, sometimes it's helpful to edit the state file. (The file named 
.macports.${subport}.state inside the directory identified by the command `port 
work`.) You can delete the lines for the phases that you want MacPorts to run 
again.


>  Q1) What is the port command to execute all needed phases, starting with 
> patch?
> 
> Somewhere it says something like install creates a tarball from destroot, 
> activate unpackes that tarball.
> Above I wrote "install" because I'm looking for the port verb that does 
> exactly this.
> I would like to be able to do the complete installation process without 
> activate.
> 
> My experience is this:
> port install does
> - if activated: nothing
> - else: do all steps from $(port work munin)/.macportsmunin.state
> Is this correct? If this is true, port deactivate munin && port install munin 
> would be enough.
> 
>  Q2) What is the port command to execute all needed phases, except activate?

I don't think any such command exists. Why do you want this?



> Possible solutions:
> - using this unknown port "install" verb
> - rm $(port location munin)* 
>  is this safe?
> - somehow manipulating the registry
>  doesn't sound safe


Reply via email to