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