PORTSHAKER(8) BSD System Manager's Manual PORTSHAKER(8)NAMEportshaker — Maintain a set of ports trees.
SYNOPSISportshaker [-qstv] [-U | -u source] [-M | -m target] [-I | -i target]
DESCRIPTION
The portshaker utility maintains a set of target ports trees containing
ports provided by source ports trees.
A single target ports tree can contain ports from any number of source
ports trees. If a port is provided by more than one source ports tree,
portshaker will merge the latest version of this port in the target ports
tree.
As portshaker can maintain any number of target ports tree, it is partic‐
ularly handy if you want to maintain ports trees in a tinderbox.
The options are as follows:
-I Update all target ports trees INDEX files.
-M Merge all target ports trees.
-U Update all source ports trees.
-i target
Update the specified target ports tree INDEX files.
-m target
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.
-u source
Update the specified source ports tree.
-v Increase verbosity level.
Handling conflics
When merging a target ports tree, portshaker will try to detect inconsis‐
tencies 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.
IMPLEMENTATION NOTES
Options order
portshaker will update specified source ports tree and then merge speci‐
fied target ports trees regardless of the order of the -U, -u, -M and -m
options order.
Special behaviour
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.
ENVIRONMENT
The following environment variables affect the execution of portshaker:
portshaker_info If set to “YES” portshaker will output extra informa‐
tion. 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.
FILES
/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.
SEE ALSOportshaker.conf(5), portshaker.d(5)HISTORYportshaker 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 con‐
tributed ports tree maintenance.
AUTHORS
Romain Tarti�re ⟨romain@blogreen.org⟩
BSD September 30, 2008 BSD