|-I||Update all target ports trees INDEX files.|
|-M||Merge all target ports trees.|
|-U||Update all source ports trees.|
|Update the specified target ports tree INDEX files.|
|Merge the specified target ports tree.|
|-q||Decrease verbosity level.|
|-s||Display the list of configured source ports trees and exit.|
|-t||Display the list of configured target ports trees and exit.|
|Update the specified source ports tree.|
|-v||Increase verbosity level.|
When merging a target ports tree, portshaker will try to detect inconsistencies and report conflicts.
Such conflics can occur in two situations:
- Two source ports tree claim to provide the same version of a single port (they both have the same PORTEPOCH, PORTVERSION and PORTREVISION) but they do not provide the same files.
In such a situation, portshaker(8) will switch to interactive mode and ask you what to do.
In order to efectively fix the problem after the merge, you will have to either:
- Remove the conflicting version of the port from its source ports tree.
- Bump the PORTREVISION of the port from the desired source ports tree.
- A port to be merged has a version number going backward. portshaker will not merge the port and will emit a warning.
portshaker will update specified source ports tree and then merge specified target ports trees regardless of the order of the -U -, -u -, -M and -m options order.
When executed without any argument, portshaker will update all source ports trees and then merge all target ports tree, behaving like when -UM options are provided.
The following environment variables affect the execution of portshaker:
portshaker_info If set to "YES" portshaker will output extra information. This is equivalent to using the -v flag. portshaker_debug If set to "YES" portshaker will output extra debugging information. This is equivalent to using the -v flag twice.
/usr/local/etc/portshaker.conf Default location of the configuration file containing descriptive information about portshaker target ports trees. /usr/local/etc/portshaker.d/* Default location of portshaker source ports tree update scripts.
portshaker was originally designed to tinderbuild the development version of both mono-2.0 and gnome-2.24 together. Each project used its own merge script <mono-merge.sh 8 and marcusmerge 8> but using both at the same time leaded to conflicts.
portshaker has so been developed as a general purpose solution to contributed ports tree maintenance.
.An Romain Tarti�re Aq email@example.com