MARCUSMERGE(8) FreeBSD System Manager's Manual MARCUSMERGE(8)
marcusmerge -- tool to merge MarcusCom SVN repository with FreeBSD ports
marcusmerge [-abilpStUuvx] [-c svnroot] [-d directory] [-m module]
The marcusmerge script automates the procedure of merging the latest
development versions of the GNOME Desktop ports from MarcusCom SVN repos-
itory with your current ports collection. The script can also check out
the MarcusCom ports from SVN, or download a tarball for those behind a
The ports from the MarcusCom repository are development versions and a
work in progress. They are generally experimental versions of GNOME Desk-
top components, and are not in the FreeBSD tree precisely because they
are experimental and often unstable. Users are expected to help by
reporting and debugging any problems found when building and using these
ports to the FreeBSD GNOME team <gnome@FreeBSD.org>.
The following options are supported by marcusmerge:
-a Same as -i -u -l -p. By default, marcusmerge will simply
merge the existing MarcusCom ports tree with the existing
FreeBSD ports tree. This option will update both trees first,
and tell you which programs will need to be upgraded.
-b During FreeBSD ports tree code freezes, commits are made to
the MarcusCom ports-stable module, and merged into the
FreeBSD ports tree when the code freeze ends. This option
merges the stable application updates, and does not merge
development or experimental versions, even if requested on
Note that if you use this option, you must update the
-c Specifies the SVNROOT, overriding any SVNROOT specification
in /usr/local/etc/marcusmerge.cfg. The default SVNROOT is
-d Specifies the path of the official ports, overriding any
DESTDIR specification in marcusmerge.cfg. The default path
-i Fetches the required INDEX file after running cvsup, and
before merging; overriding any fetchindex specification in
marcusmerge.cfg. The default is not to fetch the INDEX file.
-l Lists the ports for which the MarcusCom ports tree has pro-
vided a newer version than existed in the FreeBSD ports tree;
overriding any pkgversion specification in marcusmerge.cfg.
The default is not to list the ports needing an update.
-m Specifies the SVN module to checkout from MarcusCom SVN. In
general, this should always be ports.
This option overrides any MODULE specification in
marcusmerge.cfg. The default SVN module is ports.
-p Updates the official ports collection and checks out the Mar-
cusCom ports. You should fill out the SUPFILE in marcusmerge
before using this option. The default is not to cvsup the
latest official ports tree.
-s Specifies the path to the MarcusCom ports without the trail-
ing module name (e.g. without the trailing /ports), overrid-
ing any SRCDIR specification in marcusmerge.cfg. There is no
default path, so you must either specify this option, or edit
marcusmerge.cfg and fill in a value for SRCDIR. For example,
if you keep the MarcusCom ports tree in /usr/ports/MARCUS-
COM/ports, specify "/usr/ports/MARCUSCOM" as the value of
SRCDIR or the argument to -s.
-S Specifies that ``make update'' should be used as opposed to
calling cvsup directly. This overrides any SUPUPDATE speci-
fication in marcusmerge.cfg. The default is to call cvsup
directly to update the ports tree.
-t Enables the downloading of a tarball instead of using SVN,
overriding any TARBALL specification in marcusmerge.cfg. The
default is to use SVN.
Note: this option may be necessary for users behind fire-
walls, who may not be able to use SVN. Tarball snapshots are
taken every hour on the hour.
-u Updates the local copy of the MarcusCom ports repository
before merging, overriding any updating specification in
marcusmerge.cfg. The default is not to update the local copy
of the MarcusCom repository before merging.
-U Perform an unmerge on DESTDIR. An unmerge will remove all
port directories corresponding to ports that were merged on
the previous marcusmerge run. This overrides any unmerge
specification in marcusmerge.cfg. The default is not to per-
form an unmerge unless -p or -a is specified.
-v Enables verbose output, overriding any VERBOSE specification
in marcusmerge.cfg. The default is not to display verbose
-x This option merges the experimental versions of applications
after the usual development versions have been merged.
The MarcusCom repository is a testbed for what will become
the next stable GNOME version. At times, experimental ver-
sions of applications are released that are not slated for
inclusion in the next GNOME stable release. For these ports,
a separate ports-experimental module is used.
Note that if you use this option, you must update the
ports-experimental module in addition to the ports module.
You can add variable definitions to /usr/local/etc/marcusmerge.cfg. The
marcusmerge.cfg file will override any varibles in marcusmerge, so you
can copy the varibles from marcusmerge into marcusmerge.cfg. By using
marcusmerge.cfg, you do not have to specify any command line arguments to
You can add the following variables to marcusmerge.cfg:
Set the arguments used by svn to options.
Set the command used to update the official ports collection.
This is only used if update_main is set to yes or if the -p
option is specified. Before using this option, you must set
the SUPFILE variable. The default command is /usr/bin/csup.
Set the path to the local FreeBSD ports tree. This is over-
ridden by the -d option. The default path is /usr/ports.
Set the arguments used by FETCH_CMD to options. This is only
useful if TARBALL is set to yes or the -t option is speci-
fied. The default options are -4 -q.
Set the command used to download the MarcusCom tarball.
command. This is only useful if TARBALL is set to yes or the
-t option is specified. The default command is
Specify which MarcusCom SVN module will be checked out. In
general, this should always be left to the default, ports.
This variable is overridden by the -m option. The default SVN
module is ports.
Set the options for PKGVERSION_CMD to options. This is only
useful if pkgversion is set to yes or the -l option is speci-
fied. The default options are -l <.
Specify the command used to report port versions. This is
only useful if pkgversion is set to yes or the -l option is
specified. The default command is /usr/sbin/pkg_version.
Set the path to the local copy of the MarcusCom repository to
path without the trailing module name (e.g. without the
trailing /ports). This variable is overridden by the -s
options. There is no default path, so you must either specify
this variable or set the -s option.
Set the path to your ports supfile to path. The default is
to auto-detect this.
Set to yes to run ``make update'' to update your ports tree
instead of calling cvsup directly. The default is to call
cvsup directly to update the ports tree.
Set to yes to download a tarball copy of the MarcusCom repos-
itory instead of using SVN -t option. The default is no, or
to use SVN.
Set to yes to enable verbose output. This is overridden by
the -v option. The default is no.
Set to yes to show a list of outdated ports after marcusmerge
finishes the merge. This is overridden by the -l option. The
default is no.
Set to yes to update the official ports tree before merging.
This is overridden by the -p option. You should also make
sure the SUPFILE variable is correct before use this option.
The default is no.
Set to yes to update the local copy of the MarcusCom reposi-
tory before merging. This is overridden by the -u option.
The default is no.
Set to yes to fetch the necessary INDEX file after running
cvsup, and before merging. This is overridden by the -i
option. The default is no.
$PATH/marcusmerge Path to the script itself.
/usr/local/etc/marcusmerge.cfg See the VARIABLES section above to
learn more about this file.
Joe Marcus Clarke <marcus@FreeBSD.org>
Martin Klaffenboeck <email@example.com>
Franz Klammer <firstname.lastname@example.org>
Adam Weinberger <adamw@FreeBSD.org>
This manual page was written by Jeremy Messenger <email@example.com>.
The DESCRIPTION was written by Khairil Yusof <firstname.lastname@example.org>.
LICENCE AND DISCLAIMER
FreeBSD April 6, 2013 FreeBSD
Man(1) output converted with