DragonFly On-Line Manual Pages

Search: Section:  


PORTSHAKER(8)          DragonFly System Manager's Manual         PORTSHAKER(8)

NAME

portshaker - Maintain a set of ports trees.

SYNOPSIS

portshaker [-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 particularly 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 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.

IMPLEMENTATION NOTES

Options order 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. 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 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.

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 ALSO

portshaker.conf(5), portshaker.d(5)

HISTORY

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.

AUTHORS

Romain Tartiere <romain@blogreen.org> DragonFly 6.5-DEVELOPMENT September 30, 2008 DragonFly 6.5-DEVELOPMENT

Search: Section: