On May 29, 2018, at 13:31, [email protected] 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