GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
PORTSHAKER(8) FreeBSD System Manager's Manual PORTSHAKER(8)

portshaker
Maintain a set of ports trees.

portshaker [-qstv] [-U | -u source] [-M | -m target] [-I | -i target]

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 use customized ports trees with tinderbox / poudriere.

The options are as follows:

Update all target ports trees INDEX files.
Merge all target ports trees.
Update all source ports trees.
target
Update the specified target ports tree INDEX files.
target
Merge the specified target ports tree.
Decrease verbosity level.
Display the list of configured source ports trees and exit.
Display the list of configured target ports trees and exit.
source
Update the specified source ports tree.
Increase verbosity level.

When merging a target ports tree, portshaker will try to detect inconsistencies and report conflicts.

Such conflicts 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 effectively 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_config_dir
If set, overrides the default configuration location /usr/local/etc. This is mostly useful for running portshaker in a continuous integration environment.
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.conf(5), portshaker.d(5)

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 led to conflicts.

portshaker has so been developed as a general purpose solution to contributed ports tree maintenance.

Romain Tartière ⟨romain@blogreen.org⟩
September 30, 2008 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 8 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.