7059997 remove unison/lablgtk from userland
authorNorm Jacobs <Norm.Jacobs@Oracle.COM>
Fri, 01 Jul 2011 13:19:45 -0700
changeset 357 99610c129be2
parent 356 cc77dce0ea27
child 358 b973df7d380a
7059997 remove unison/lablgtk from userland
components/lablgtk/Makefile
components/lablgtk/lablgtk.license
components/lablgtk/lablgtk.p5m
components/lablgtk/patches/gobject.ml.patch
components/lablgtk/patches/ml_gobject.c.patch
components/lablgtk/patches/ml_panel.c.patch
components/meta-packages/history/SUNWlablgtk.p5m
components/meta-packages/history/SUNWunison.p5m
components/meta-packages/history/network%2Funison.p5m
components/meta-packages/history/runtime%2Focaml%2Flablgtk.p5m
components/unison/Makefile
components/unison/patches/tail-n.patch
components/unison/unison.1
components/unison/unison.license
components/unison/unison.p5m
--- a/components/lablgtk/Makefile	Fri Jul 01 11:11:11 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
-#
-
-include ../../make-rules/shared-macros.mk
-
-PATH=$(SPRO_VROOT)/bin:/usr/gnu/bin:/usr/bin
-
-COMPONENT_NAME=		lablgtk
-COMPONENT_VERSION=	2.10.1
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_PROJECT_URL=	http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgtk.html
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
-COMPONENT_ARCHIVE_HASH=	sha1:6c6f273951059fc86b89337a5b10dfb866ca5f87
-COMPONENT_ARCHIVE_URL=	http://forge.ocamlcore.org/frs/download.php/565/$(COMPONENT_ARCHIVE)
-
-include ../../make-rules/prep.mk
-include ../../make-rules/configure.mk
-include ../../make-rules/ips.mk
-
-COMPONENT_BUILD_TARGETS= world
-
-COMPONENT_PRE_CONFIGURE_ACTION = \
-	($(CLONEY) $(SOURCE_DIR) $(@D))
-
-CONFIGURE_OPTIONS  +=		--with-libdir=/usr/lib/ocaml
-
-# common targets
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
-test:		$(NO_TESTS)
-
-BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
-
-include ../../make-rules/depend.mk
--- a/components/lablgtk/lablgtk.license	Fri Jul 01 11:11:11 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,555 +0,0 @@
-Oracle elects to use only the GNU Lesser General Public License version
-2.1 (LGPL)/GNU General Public License version 2 (GPL) for any software
-where a choice of LGPL/GPL license versions are made available with the
-language indicating that LGPLv2.1/GPLv2 or any later version may be
-used, or where a choice of which version of the LGPL/GPL is applied is
-unspecified.  Unless specifically stated otherwise, where a choice
-exists between another license and either the GPL or the LGPL, Oracle
-chooses the other license.
-------------------------------------------------------------------------
-		  GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-			    NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-------------------------------------------------------------------------
-This library (files in src directory) is made available under the
-GNU Library General Public License (LGPL). You should have got a
-copy of the LGPL with the current package (see file LGPL).
-
-As a special exception to the GNU Library General Public License, you
-may link, statically or dynamically, a "work that uses the Library"
-with a publicly distributed version of the Library to produce an
-executable file containing portions of the Library, and distribute
-that executable file under terms of your choice, without any of the
-additional requirements listed in clause 6 of the GNU Library General
-Public License.  By "a publicly distributed version of the Library",
-we mean either the unmodified Library as distributed by INRIA, or a
-modified version of the Library that is distributed under the
-conditions defined in clause 3 of the GNU Library General Public
-License.  This exception does not however invalidate any other reasons
-why the executable file might be covered by the GNU Library General
-Public License.
-
-For the examples subdirectory, there is no specific licensing policy,
-but you may freely take inspiration from the code, and copy parts of
-it in your application.
-
-For the applications subdirectory, stricter rules apply:
-
-* You are free to do anything you want with this code as long as it is
-  for personal use.
-
-* Redistribution can only be "as is".  Binary distribution and bug
-  fixes are allowed, but you cannot extensively modify the code
-  without asking the authors.
-
-The authors may choose to remove any of the above restrictions on a
-per request basis.
-
-Authors:
-	Jacques Garrigue <[email protected]>
-	Benjamin Monate  <[email protected]>
-        Olivier Andrieu  <[email protected]>
-	Jun Furuse       <[email protected]>
-	Hubert Fauque    <[email protected]>
-	Koji Kagawa      <[email protected]>
-
-$Id: COPYING 1351 2007-07-02 13:34:54Z ben_99_9 $
--- a/components/lablgtk/lablgtk.p5m	Fri Jul 01 11:11:11 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,366 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
-#
-
-<transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
-
-set name=pkg.fmri value=pkg:/runtime/ocaml/lablgtk@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
-set name=pkg.summary value="lablgtk - Objective Caml interface to gtk+"
-set name=info.classification value="org.opensolaris.category.2008:Development/GNOME and GTK+"
-set name=info.upstream_url value=$(COMPONENT_PROJECT_URL)
-set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
-set name=opensolaris.arc_url \
-    value=http://arc.opensolaris.org/caselog/PSARC/2008/406
-set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-
-license lablgtk.license license="LGPLv2.1"
-
-dir path=usr
-dir path=usr/bin
-dir path=usr/lib
-dir path=usr/lib/ocaml
-dir path=usr/lib/ocaml/lablgtk2
-dir path=usr/lib/ocaml/stublibs
-file path=usr/bin/gdk-pixbuf-mlsource
-file path=usr/bin/lablgladecc2
-file path=usr/bin/lablgtk2
-file path=usr/lib/ocaml/lablgtk2/gAction.cmi
-file path=usr/lib/ocaml/lablgtk2/gAction.cmx
-file path=usr/lib/ocaml/lablgtk2/gAction.ml
-file path=usr/lib/ocaml/lablgtk2/gAction.mli
-file path=usr/lib/ocaml/lablgtk2/gAssistant.cmi
-file path=usr/lib/ocaml/lablgtk2/gAssistant.cmx
-file path=usr/lib/ocaml/lablgtk2/gAssistant.ml
-file path=usr/lib/ocaml/lablgtk2/gAssistant.mli
-file path=usr/lib/ocaml/lablgtk2/gBin.cmi
-file path=usr/lib/ocaml/lablgtk2/gBin.cmx
-file path=usr/lib/ocaml/lablgtk2/gBin.ml
-file path=usr/lib/ocaml/lablgtk2/gBin.mli
-file path=usr/lib/ocaml/lablgtk2/gBroken.cmi
-file path=usr/lib/ocaml/lablgtk2/gBroken.cmx
-file path=usr/lib/ocaml/lablgtk2/gBroken.ml
-file path=usr/lib/ocaml/lablgtk2/gBroken.mli
-file path=usr/lib/ocaml/lablgtk2/gButton.cmi
-file path=usr/lib/ocaml/lablgtk2/gButton.cmx
-file path=usr/lib/ocaml/lablgtk2/gButton.ml
-file path=usr/lib/ocaml/lablgtk2/gButton.mli
-file path=usr/lib/ocaml/lablgtk2/gContainer.cmi
-file path=usr/lib/ocaml/lablgtk2/gContainer.cmx
-file path=usr/lib/ocaml/lablgtk2/gContainer.ml
-file path=usr/lib/ocaml/lablgtk2/gContainer.mli
-file path=usr/lib/ocaml/lablgtk2/gData.cmi
-file path=usr/lib/ocaml/lablgtk2/gData.cmx
-file path=usr/lib/ocaml/lablgtk2/gData.ml
-file path=usr/lib/ocaml/lablgtk2/gData.mli
-file path=usr/lib/ocaml/lablgtk2/gDraw.cmi
-file path=usr/lib/ocaml/lablgtk2/gDraw.cmx
-file path=usr/lib/ocaml/lablgtk2/gDraw.ml
-file path=usr/lib/ocaml/lablgtk2/gDraw.mli
-file path=usr/lib/ocaml/lablgtk2/gEdit.cmi
-file path=usr/lib/ocaml/lablgtk2/gEdit.cmx
-file path=usr/lib/ocaml/lablgtk2/gEdit.ml
-file path=usr/lib/ocaml/lablgtk2/gEdit.mli
-file path=usr/lib/ocaml/lablgtk2/gFile.cmi
-file path=usr/lib/ocaml/lablgtk2/gFile.cmx
-file path=usr/lib/ocaml/lablgtk2/gFile.ml
-file path=usr/lib/ocaml/lablgtk2/gFile.mli
-file path=usr/lib/ocaml/lablgtk2/gList.cmi
-file path=usr/lib/ocaml/lablgtk2/gList.cmx
-file path=usr/lib/ocaml/lablgtk2/gList.ml
-file path=usr/lib/ocaml/lablgtk2/gList.mli
-file path=usr/lib/ocaml/lablgtk2/gMain.cmi
-file path=usr/lib/ocaml/lablgtk2/gMain.cmx
-file path=usr/lib/ocaml/lablgtk2/gMain.ml
-file path=usr/lib/ocaml/lablgtk2/gMain.mli
-file path=usr/lib/ocaml/lablgtk2/gMenu.cmi
-file path=usr/lib/ocaml/lablgtk2/gMenu.cmx
-file path=usr/lib/ocaml/lablgtk2/gMenu.ml
-file path=usr/lib/ocaml/lablgtk2/gMenu.mli
-file path=usr/lib/ocaml/lablgtk2/gMisc.cmi
-file path=usr/lib/ocaml/lablgtk2/gMisc.cmx
-file path=usr/lib/ocaml/lablgtk2/gMisc.ml
-file path=usr/lib/ocaml/lablgtk2/gMisc.mli
-file path=usr/lib/ocaml/lablgtk2/gObj.cmi
-file path=usr/lib/ocaml/lablgtk2/gObj.cmx
-file path=usr/lib/ocaml/lablgtk2/gObj.ml
-file path=usr/lib/ocaml/lablgtk2/gObj.mli
-file path=usr/lib/ocaml/lablgtk2/gPack.cmi
-file path=usr/lib/ocaml/lablgtk2/gPack.cmx
-file path=usr/lib/ocaml/lablgtk2/gPack.ml
-file path=usr/lib/ocaml/lablgtk2/gPack.mli
-file path=usr/lib/ocaml/lablgtk2/gPango.cmi
-file path=usr/lib/ocaml/lablgtk2/gPango.cmx
-file path=usr/lib/ocaml/lablgtk2/gPango.ml
-file path=usr/lib/ocaml/lablgtk2/gRange.cmi
-file path=usr/lib/ocaml/lablgtk2/gRange.cmx
-file path=usr/lib/ocaml/lablgtk2/gRange.ml
-file path=usr/lib/ocaml/lablgtk2/gRange.mli
-file path=usr/lib/ocaml/lablgtk2/gSourceView.cmi
-file path=usr/lib/ocaml/lablgtk2/gSourceView.cmx
-file path=usr/lib/ocaml/lablgtk2/gSourceView.ml
-file path=usr/lib/ocaml/lablgtk2/gSourceView.mli
-file path=usr/lib/ocaml/lablgtk2/gText.cmi
-file path=usr/lib/ocaml/lablgtk2/gText.cmx
-file path=usr/lib/ocaml/lablgtk2/gText.ml
-file path=usr/lib/ocaml/lablgtk2/gText.mli
-file path=usr/lib/ocaml/lablgtk2/gToolbox.cmi
-file path=usr/lib/ocaml/lablgtk2/gToolbox.cmx
-file path=usr/lib/ocaml/lablgtk2/gToolbox.ml
-file path=usr/lib/ocaml/lablgtk2/gToolbox.mli
-file path=usr/lib/ocaml/lablgtk2/gTree.cmi
-file path=usr/lib/ocaml/lablgtk2/gTree.cmx
-file path=usr/lib/ocaml/lablgtk2/gTree.ml
-file path=usr/lib/ocaml/lablgtk2/gTree.mli
-file path=usr/lib/ocaml/lablgtk2/gUtil.cmi
-file path=usr/lib/ocaml/lablgtk2/gUtil.cmx
-file path=usr/lib/ocaml/lablgtk2/gUtil.ml
-file path=usr/lib/ocaml/lablgtk2/gUtil.mli
-file path=usr/lib/ocaml/lablgtk2/gWindow.cmi
-file path=usr/lib/ocaml/lablgtk2/gWindow.cmx
-file path=usr/lib/ocaml/lablgtk2/gWindow.ml
-file path=usr/lib/ocaml/lablgtk2/gWindow.mli
-file path=usr/lib/ocaml/lablgtk2/gaux.cmi
-file path=usr/lib/ocaml/lablgtk2/gaux.cmx
-file path=usr/lib/ocaml/lablgtk2/gaux.ml
-file path=usr/lib/ocaml/lablgtk2/gdk.cmi
-file path=usr/lib/ocaml/lablgtk2/gdk.cmx
-file path=usr/lib/ocaml/lablgtk2/gdk.ml
-file path=usr/lib/ocaml/lablgtk2/gdk.mli
-file path=usr/lib/ocaml/lablgtk2/gdkEnums.cmi
-file path=usr/lib/ocaml/lablgtk2/gdkEnums.cmx
-file path=usr/lib/ocaml/lablgtk2/gdkEnums.ml
-file path=usr/lib/ocaml/lablgtk2/gdkEvent.cmi
-file path=usr/lib/ocaml/lablgtk2/gdkEvent.cmx
-file path=usr/lib/ocaml/lablgtk2/gdkEvent.ml
-file path=usr/lib/ocaml/lablgtk2/gdkKeysyms.cmi
-file path=usr/lib/ocaml/lablgtk2/gdkKeysyms.cmx
-file path=usr/lib/ocaml/lablgtk2/gdkKeysyms.ml
-file path=usr/lib/ocaml/lablgtk2/gdkPixbuf.cmi
-file path=usr/lib/ocaml/lablgtk2/gdkPixbuf.cmx
-file path=usr/lib/ocaml/lablgtk2/gdkPixbuf.ml
-file path=usr/lib/ocaml/lablgtk2/gdkPixbuf.mli
-file path=usr/lib/ocaml/lablgtk2/gdk_tags.h
-file path=usr/lib/ocaml/lablgtk2/gdkpixbuf_tags.h
-file path=usr/lib/ocaml/lablgtk2/gdkprivate-win32.h
-file path=usr/lib/ocaml/lablgtk2/glGtk.mli
-file path=usr/lib/ocaml/lablgtk2/glade.cmi
-file path=usr/lib/ocaml/lablgtk2/glade.cmx
-file path=usr/lib/ocaml/lablgtk2/glade.ml
-file path=usr/lib/ocaml/lablgtk2/glade.mli
-file path=usr/lib/ocaml/lablgtk2/glib.cmi
-file path=usr/lib/ocaml/lablgtk2/glib.cmx
-file path=usr/lib/ocaml/lablgtk2/glib.ml
-file path=usr/lib/ocaml/lablgtk2/glib.mli
-file path=usr/lib/ocaml/lablgtk2/glib_tags.h
-file path=usr/lib/ocaml/lablgtk2/gnoCanvas.cmi
-file path=usr/lib/ocaml/lablgtk2/gnoCanvas.cmx
-file path=usr/lib/ocaml/lablgtk2/gnoCanvas.ml
-file path=usr/lib/ocaml/lablgtk2/gnoCanvas.mli
-file path=usr/lib/ocaml/lablgtk2/gnoDruid.cmi
-file path=usr/lib/ocaml/lablgtk2/gnoDruid.cmx
-file path=usr/lib/ocaml/lablgtk2/gnoDruid.ml
-file path=usr/lib/ocaml/lablgtk2/gnoDruid.mli
-file path=usr/lib/ocaml/lablgtk2/gnomeCanvas.cmi
-file path=usr/lib/ocaml/lablgtk2/gnomeCanvas.cmx
-file path=usr/lib/ocaml/lablgtk2/gnomeCanvas.ml
-file path=usr/lib/ocaml/lablgtk2/gnomeDruid.cmi
-file path=usr/lib/ocaml/lablgtk2/gnomeDruid.cmx
-file path=usr/lib/ocaml/lablgtk2/gnomeDruid.ml
-file path=usr/lib/ocaml/lablgtk2/gnomeui_tags.h
-file path=usr/lib/ocaml/lablgtk2/gobject.cmi
-file path=usr/lib/ocaml/lablgtk2/gobject.cmx
-file path=usr/lib/ocaml/lablgtk2/gobject.ml
-file path=usr/lib/ocaml/lablgtk2/gobject.mli
-file path=usr/lib/ocaml/lablgtk2/gobject_tags.h
-file path=usr/lib/ocaml/lablgtk2/gpointer.cmi
-file path=usr/lib/ocaml/lablgtk2/gpointer.cmx
-file path=usr/lib/ocaml/lablgtk2/gpointer.ml
-file path=usr/lib/ocaml/lablgtk2/gpointer.mli
-file path=usr/lib/ocaml/lablgtk2/gtk.cmi
-file path=usr/lib/ocaml/lablgtk2/gtk.cmx
-file path=usr/lib/ocaml/lablgtk2/gtk.ml
-file path=usr/lib/ocaml/lablgtk2/gtkAssistant.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkAssistant.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkAssistant.ml
-file path=usr/lib/ocaml/lablgtk2/gtkBase.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkBase.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkBase.ml
-file path=usr/lib/ocaml/lablgtk2/gtkBin.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkBin.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkBin.ml
-file path=usr/lib/ocaml/lablgtk2/gtkBroken.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkBroken.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkBroken.ml
-file path=usr/lib/ocaml/lablgtk2/gtkButton.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkButton.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkButton.ml
-file path=usr/lib/ocaml/lablgtk2/gtkData.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkData.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkData.ml
-file path=usr/lib/ocaml/lablgtk2/gtkEdit.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkEdit.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkEdit.ml
-file path=usr/lib/ocaml/lablgtk2/gtkEnums.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkEnums.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkEnums.ml
-file path=usr/lib/ocaml/lablgtk2/gtkFile.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkFile.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkFile.ml
-file path=usr/lib/ocaml/lablgtk2/gtkInit.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkInit.cmo
-file path=usr/lib/ocaml/lablgtk2/gtkInit.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkInit.ml
-file path=usr/lib/ocaml/lablgtk2/gtkInit.o
-file path=usr/lib/ocaml/lablgtk2/gtkList.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkList.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkList.ml
-file path=usr/lib/ocaml/lablgtk2/gtkMain.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkMain.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkMain.ml
-file path=usr/lib/ocaml/lablgtk2/gtkMenu.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkMenu.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkMenu.ml
-file path=usr/lib/ocaml/lablgtk2/gtkMisc.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkMisc.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkMisc.ml
-file path=usr/lib/ocaml/lablgtk2/gtkObject.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkObject.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkObject.ml
-file path=usr/lib/ocaml/lablgtk2/gtkPack.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkPack.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkPack.ml
-file path=usr/lib/ocaml/lablgtk2/gtkRange.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkRange.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkRange.ml
-file path=usr/lib/ocaml/lablgtk2/gtkSignal.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkSignal.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkSignal.ml
-file path=usr/lib/ocaml/lablgtk2/gtkSignal.mli
-file path=usr/lib/ocaml/lablgtk2/gtkSourceView.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkSourceView.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkSourceView.ml
-file path=usr/lib/ocaml/lablgtk2/gtkSourceView_types.mli
-file path=usr/lib/ocaml/lablgtk2/gtkSpell.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkSpell.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkSpell.ml
-file path=usr/lib/ocaml/lablgtk2/gtkSpell.mli
-file path=usr/lib/ocaml/lablgtk2/gtkStock.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkStock.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkStock.ml
-file path=usr/lib/ocaml/lablgtk2/gtkText.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkText.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkText.ml
-file path=usr/lib/ocaml/lablgtk2/gtkThInit.cmo
-file path=usr/lib/ocaml/lablgtk2/gtkThInit.ml
-file path=usr/lib/ocaml/lablgtk2/gtkThread.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkThread.cmo
-file path=usr/lib/ocaml/lablgtk2/gtkThread.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkThread.ml
-file path=usr/lib/ocaml/lablgtk2/gtkThread.mli
-file path=usr/lib/ocaml/lablgtk2/gtkThread.o
-file path=usr/lib/ocaml/lablgtk2/gtkTree.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkTree.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkTree.ml
-file path=usr/lib/ocaml/lablgtk2/gtkWindow.cmi
-file path=usr/lib/ocaml/lablgtk2/gtkWindow.cmx
-file path=usr/lib/ocaml/lablgtk2/gtkWindow.ml
-file path=usr/lib/ocaml/lablgtk2/gtk_tags.h
-file path=usr/lib/ocaml/lablgtk2/lablglade.a
-file path=usr/lib/ocaml/lablgtk2/lablglade.cma
-file path=usr/lib/ocaml/lablgtk2/lablglade.cmxa
-file path=usr/lib/ocaml/lablgtk2/lablgnomecanvas.a
-file path=usr/lib/ocaml/lablgtk2/lablgnomecanvas.cma
-file path=usr/lib/ocaml/lablgtk2/lablgnomecanvas.cmxa
-file path=usr/lib/ocaml/lablgtk2/lablgnomeui.a
-file path=usr/lib/ocaml/lablgtk2/lablgnomeui.cma
-file path=usr/lib/ocaml/lablgtk2/lablgnomeui.cmxa
-file path=usr/lib/ocaml/lablgtk2/lablgtk.a
-file path=usr/lib/ocaml/lablgtk2/lablgtk.cma
-file path=usr/lib/ocaml/lablgtk2/lablgtk.cmxa
-file path=usr/lib/ocaml/lablgtk2/lablgtksourceview.a
-file path=usr/lib/ocaml/lablgtk2/lablgtksourceview.cma
-file path=usr/lib/ocaml/lablgtk2/lablgtksourceview.cmxa
-file path=usr/lib/ocaml/lablgtk2/lablgtkspell.a
-file path=usr/lib/ocaml/lablgtk2/lablgtkspell.cma
-file path=usr/lib/ocaml/lablgtk2/lablgtkspell.cmxa
-file path=usr/lib/ocaml/lablgtk2/lablpanel.a
-file path=usr/lib/ocaml/lablgtk2/lablpanel.cma
-file path=usr/lib/ocaml/lablgtk2/lablpanel.cmxa
-file path=usr/lib/ocaml/lablgtk2/lablrsvg.a
-file path=usr/lib/ocaml/lablgtk2/lablrsvg.cma
-file path=usr/lib/ocaml/lablgtk2/lablrsvg.cmxa
-file path=usr/lib/ocaml/lablgtk2/liblablglade2.a
-file path=usr/lib/ocaml/lablgtk2/liblablgnomecanvas.a
-file path=usr/lib/ocaml/lablgtk2/liblablgnomeui.a
-file path=usr/lib/ocaml/lablgtk2/liblablgtk2.a
-file path=usr/lib/ocaml/lablgtk2/liblablgtksourceview.a
-file path=usr/lib/ocaml/lablgtk2/liblablgtkspell.a
-file path=usr/lib/ocaml/lablgtk2/liblablpanel.a
-file path=usr/lib/ocaml/lablgtk2/liblablrsvg.a
-file path=usr/lib/ocaml/lablgtk2/ml_domain.h
-file path=usr/lib/ocaml/lablgtk2/ml_gdk.h
-file path=usr/lib/ocaml/lablgtk2/ml_gdkpixbuf.h
-file path=usr/lib/ocaml/lablgtk2/ml_glib.h
-file path=usr/lib/ocaml/lablgtk2/ml_gobject.h
-file path=usr/lib/ocaml/lablgtk2/ml_gpointer.h
-file path=usr/lib/ocaml/lablgtk2/ml_gtk.h
-file path=usr/lib/ocaml/lablgtk2/ml_gtktext.h
-file path=usr/lib/ocaml/lablgtk2/ml_gtktree.h
-file path=usr/lib/ocaml/lablgtk2/ml_gvaluecaml.h
-file path=usr/lib/ocaml/lablgtk2/ml_pango.h
-file path=usr/lib/ocaml/lablgtk2/panel.cmi
-file path=usr/lib/ocaml/lablgtk2/panel.cmx
-file path=usr/lib/ocaml/lablgtk2/panel.ml
-file path=usr/lib/ocaml/lablgtk2/panel.mli
-file path=usr/lib/ocaml/lablgtk2/panel_tags.h
-file path=usr/lib/ocaml/lablgtk2/pango.cmi
-file path=usr/lib/ocaml/lablgtk2/pango.cmx
-file path=usr/lib/ocaml/lablgtk2/pango.ml
-file path=usr/lib/ocaml/lablgtk2/pangoEnums.cmi
-file path=usr/lib/ocaml/lablgtk2/pangoEnums.cmx
-file path=usr/lib/ocaml/lablgtk2/pangoEnums.ml
-file path=usr/lib/ocaml/lablgtk2/pango_tags.h
-file path=usr/lib/ocaml/lablgtk2/propcc mode=0555
-file path=usr/lib/ocaml/lablgtk2/rsvg.cmi
-file path=usr/lib/ocaml/lablgtk2/rsvg.cmx
-file path=usr/lib/ocaml/lablgtk2/rsvg.ml
-file path=usr/lib/ocaml/lablgtk2/rsvg.mli
-file path=usr/lib/ocaml/lablgtk2/sourceViewEnums.cmi
-file path=usr/lib/ocaml/lablgtk2/sourceViewEnums.cmx
-file path=usr/lib/ocaml/lablgtk2/sourceViewEnums.ml
-file path=usr/lib/ocaml/lablgtk2/sourceView_tags.h
-file path=usr/lib/ocaml/lablgtk2/varcc mode=0555
-file path=usr/lib/ocaml/lablgtk2/win32.h
-file path=usr/lib/ocaml/lablgtk2/wrappers.h
-file path=usr/lib/ocaml/lablgtk2/xml_lexer.mli
-file path=usr/lib/ocaml/stublibs/dlllablglade2.so
-file path=usr/lib/ocaml/stublibs/dlllablgnomecanvas.so
-file path=usr/lib/ocaml/stublibs/dlllablgnomeui.so
-file path=usr/lib/ocaml/stublibs/dlllablgtk2.so
-file path=usr/lib/ocaml/stublibs/dlllablgtksourceview.so
-file path=usr/lib/ocaml/stublibs/dlllablgtkspell.so
-file path=usr/lib/ocaml/stublibs/dlllablpanel.so
-file path=usr/lib/ocaml/stublibs/dlllablrsvg.so
-
-legacy pkg=SUNWlablgtk \
-    desc="lablgtk - Objective Caml interface to gtk+ (2.10.1)" \
-    name="lablgtk - Objective Caml interface to gtk+"
--- a/components/lablgtk/patches/gobject.ml.patch	Fri Jul 01 11:11:11 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
---- lablgtk-2.10.1/src/gobject.ml.orig	Wed May 18 10:06:50 2011
-+++ lablgtk-2.10.1/src/gobject.ml	Wed May 18 10:07:09 2011
-@@ -118,8 +118,8 @@
-   external type_transformable : g_type -> g_type -> bool
-       = "ml_g_value_type_transformable"
-   external transform : g_value -> g_value -> bool = "ml_g_value_transform"
--  external get : g_value -> data_get = "ml_g_value_get_variant"
--  external set : g_value -> 'a data_set -> unit = "ml_g_value_set_variant"
-+  external get : g_value -> data_get = "ml_mylocal_g_value_get_variant"
-+  external set : g_value -> 'a data_set -> unit = "ml_mylocal_g_value_set_variant"
-   external get_pointer : g_value -> Gpointer.boxed = "ml_g_value_get_pointer"
-   external get_nativeint : g_value -> nativeint = "ml_g_value_get_nativeint"
-   external get_int32 : g_value -> int32 = "ml_g_value_get_int32"
--- a/components/lablgtk/patches/ml_gobject.c.patch	Fri Jul 01 11:11:11 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
---- lablgtk-2.10.1/src/ml_gobject.c.orig	Wed May 18 09:58:53 2011
-+++ lablgtk-2.10.1/src/ml_gobject.c	Wed May 18 10:12:57 2011
-@@ -267,7 +267,7 @@
- 
- #define DATA  (val->data[0])
- 
--static value g_value_get_variant (GValue *val)
-+static value mylocal_g_value_get_variant (GValue *val)
- {
-     CAMLparam0();
-     CAMLlocal1(tmp);
-@@ -353,9 +353,9 @@
-     CAMLreturn(ret);
- }
- 
--ML_1 (g_value_get_variant, GValue_val, ID)
-+ML_1 (mylocal_g_value_get_variant, GValue_val, ID)
- 
--static void g_value_set_variant (GValue *val, value arg)
-+static void mylocal_g_value_set_variant (GValue *val, value arg)
- {
-     value tag = Field(arg,0);
-     value data = Field(arg,1);
-@@ -439,7 +439,7 @@
-     return;
- }
- 
--ML_2 (g_value_set_variant, GValue_val, ID, Unit)
-+ML_2 (mylocal_g_value_set_variant, GValue_val, ID, Unit)
- 
- CAMLprim value ml_g_value_get_nativeint(value arg) {
-     GValue *val = GValue_val(arg);
-@@ -510,7 +510,7 @@
-         pspec = g_object_class_find_property (class, param->name);
-         if (!pspec) failwith ("Gobject.create");
-         g_value_init (&param->value, pspec->value_type);
--        g_value_set_variant (&param->value, Field(Field(cell,0),1));
-+        mylocal_g_value_set_variant (&param->value, Field(Field(cell,0),1));
-         param++;
-       }
-     }
-@@ -533,7 +533,7 @@
-   value ret;
-   g_value_init (&val, tp);
-   g_object_get_property (obj, String_val(prop), &val);
--  ret = g_value_get_variant (&val);
-+  ret = mylocal_g_value_get_variant (&val);
-   g_value_unset (&val);
-   return ret;
- }
-@@ -544,7 +544,7 @@
-   GType tp = my_g_object_get_property_type(obj, String_val(prop));
-   GValue val = {0};
-   g_value_init (&val, tp);
--  g_value_set_variant (&val, arg);
-+  mylocal_g_value_set_variant (&val, arg);
-   g_object_set_property (obj, String_val(prop), &val);
-   g_value_unset (&val);
-   return Val_unit;
-@@ -587,7 +587,7 @@
-     for (i = 0; i < query.n_params; i++) {
-         g_value_init (&iparams[i+1],
-                       query.param_types[i] & ~G_SIGNAL_TYPE_STATIC_SCOPE);
--        g_value_set_variant (&iparams[i+1], Field(params,i));
-+        mylocal_g_value_set_variant (&iparams[i+1], Field(params,i));
-     }
-     g_signal_emitv (iparams, signal_id, detail, (ret ? GValue_val(ret) : 0));
-     for (i = 0; i < query.n_params + 1; i++)
--- a/components/lablgtk/patches/ml_panel.c.patch	Fri Jul 01 11:11:11 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
---- lablgtk-2.10.1/src/ml_panel.c.orig	Thu May 14 10:33:32 2009
-+++ lablgtk-2.10.1/src/ml_panel.c	Thu May 14 10:33:51 2009
-@@ -23,6 +23,7 @@
- #include <string.h>
- 
- #include <libgnomeui/gnome-client.h>
-+#include <libgnomeui/gnome-ui-init.h>
- #include <panel-applet.h>
- 
- #include <caml/mlvalues.h>
--- a/components/meta-packages/history/SUNWlablgtk.p5m	Fri Jul 01 11:11:11 2011 -0700
+++ b/components/meta-packages/history/SUNWlablgtk.p5m	Fri Jul 01 13:19:45 2011 -0700
@@ -21,10 +21,7 @@
 # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 #
 
-
-set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
-set name=pkg.renamed value=true
-
+# was renamed to runtime/ocaml/lablgtk, both are obsolete now
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.170
+set name=pkg.obsolete value=true
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-
-depend fmri=runtime/ocaml/[email protected] type=require
--- a/components/meta-packages/history/SUNWunison.p5m	Fri Jul 01 11:11:11 2011 -0700
+++ b/components/meta-packages/history/SUNWunison.p5m	Fri Jul 01 13:19:45 2011 -0700
@@ -22,9 +22,7 @@
 #
 
 
-set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
-set name=pkg.renamed value=true
-
+# was renamed to network/unison, both are obsolete now
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.170
+set name=pkg.obsolete value=true
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-
-depend fmri=network/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/network%2Funison.p5m	Fri Jul 01 13:19:45 2011 -0700
@@ -0,0 +1,26 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/network/[email protected],5.11-0.170
+set name=pkg.obsolete value=true
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/runtime%2Focaml%2Flablgtk.p5m	Fri Jul 01 13:19:45 2011 -0700
@@ -0,0 +1,26 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/runtime/ocaml/[email protected],5.11-0.170
+set name=pkg.obsolete value=true
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/unison/Makefile	Fri Jul 01 11:11:11 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
-#
-
-include ../../make-rules/shared-macros.mk
-
-PATH=$(SPRO_VROOT)/bin:/usr/gnu/bin:/usr/bin
-
-COMPONENT_NAME=		unison
-COMPONENT_VERSION=	2.27.57
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_PROJECT_URL=	http://www.cis.upenn.edu/~bcpierce/unison
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
-COMPONENT_ARCHIVE_HASH=	sha1:9892680d8bd3e3c50031451cc6e77eb5431768ea
-COMPONENT_ARCHIVE_URL=	http://www.seas.upenn.edu/~bcpierce/unison//download/releases/$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)
-
-include ../../make-rules/prep.mk
-include ../../make-rules/justmake.mk
-include ../../make-rules/ips.mk
-
-PKG_PROTO_DIRS += $(BUILD_DIR_32)
-
-COMPONENT_PRE_CONFIGURE_ACTION = \
-	($(CLONEY) $(SOURCE_DIR) $(@D))
-
-COMPONENT_BUILD_ARGS += UISTYLE=gtk2
-COMPONENT_BUILD_ARGS += STATIC=true
-
-COMPONENT_TEST_TARGETS=	selftest
-
-# common targets
-build:		$(BUILD_32)
-
-install:	$(BUILD_32)
-
-# there are quite a few more interesting test-ish targets
-# (like demo) but they mostly seem interactive
-test:		$(TEST_32)
-
-BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
-
-include ../../make-rules/depend.mk
--- a/components/unison/patches/tail-n.patch	Fri Jul 01 11:11:11 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
---- unison-2.27.57/Makefile.OCaml.orig	Tue May 24 12:44:25 2011
-+++ unison-2.27.57/Makefile.OCaml	Tue May 24 12:44:42 2011
-@@ -42,9 +42,9 @@
- # to Unix '/' separators, and extraneous control-M's are deleted.
- # Unfortunately there is a literal control-M buried in this, I'd rather
- # get rid of it...
--# OCAMLLIBDIR=$(shell ocamlc -v | tail -n -1 | sed -e 's/.* //g' | sed -e 's/\\/\//g' | sed -e 's///g')
-+# OCAMLLIBDIR=$(shell ocamlc -v | tail -1 | sed -e 's/.* //g' | sed -e 's/\\/\//g' | sed -e 's///g')
- # Better(?) version, June 2005:
--OCAMLLIBDIR=$(shell ocamlc -v | tail -n -1 | sed -e 's/.* //g' | sed -e 's/\\/\//g' | tr -d '\r')
-+OCAMLLIBDIR=$(shell ocamlc -v | tail -1 | sed -e 's/.* //g' | sed -e 's/\\/\//g' | tr -d '\r')
- 
- ## BCP (6/05) an alternative, but not quite working, version
- ## suggested by Nick Montfort:
-@@ -274,7 +274,7 @@
-            >>dot.tmp
- 	echo '{ rank = same; "Tree"; "Safelist"; }'>>dot.tmp
- 	echo '{ rank = same; "Uarg"; "Prefs"; }'>>dot.tmp
--	ocamldot .depend | tail -n +2 >> dot.tmp
-+	ocamldot .depend | tail +2 >> dot.tmp
- 	-dot -Tps -o DEPENDENCIES.ps dot.tmp
- endif
- 
--- a/components/unison/unison.1	Fri Jul 01 11:11:11 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2233 +0,0 @@
-'\" t
-.\"
-.TH "UNISON" "1" "03/21/2008" "" ""
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.SH "NAME"
-unison \- File Synchronizer
-.SH "SYNOPSIS"
-.sp
-.nf
-unison [options]
-unison root1 root2 [options]
-unison profilename [options]
-.fi
-.SH "DESCRIPTION"
-.sp
-Unison is a file\-synchronization tool for Unix and Windows. It allows
-two replicas of a collection of files and directories to be stored on
-different hosts (or different disks on the same host), modified
-separately, and then brought up to date by propagating the changes in
-each replica to the other.
-.sp
-Preliminaries
-.sp
-.nf
-Unison can be used with either of the two user interfaces:
- 1. a straightforward textual interface and
- 2. a more sophisticated graphical interface
-.fi
-.sp
-The textual interface is convenient for running through the scripts and
-works on dumb terminals. The graphical interface is better for most
-interactive use. For this tutorial, you can use either of the two interfaces.
-If you are invoking Unison through the command line, then type unison in
-the command prompt. You can select either the text or the graphical interface,
-depending upon the type of the interface that you had selected as default
-when the executable was built. You can still choose the text interface even
-if graphical interface is the default by adding \-ui text. The other
-command\-line arguments to both versions are identical.
-.fi
-.sp
-The graphical version can also be run directly by clicking on its
-icon, but this may require a little set\-up (see the section
-"Click\-starting Unison" ). For this tutorial, it is assumed that you are
-using the command line.
-.sp
-Unison can synchronize files and directories on a single machine, or
-between two machines on a network. (The same program runs on both
-machines; the only difference is with the user interface.) If you want a
-single\-machine setup, then call that machine as the CLIENT. If
-you are synchronizing two machines, call them CLIENT and SERVER.
-.sp
-Local Usage
-.sp
-This tutorial lets you know how to get the client machine set up first and
-then how to synchronize two directories on a single machine.
-.sp
-Follow the instructions in the "Installation" section to either
-download or build an executable version of Unison, and to install it
-on your search path. 
-.sp
-Note: If you want to use the textual
-user interface, download the appropriate textui binary. If you
-want the graphical interface\-\-or if you want to use both of the interfaces
-[the gtkui binary actually has both compiled in]\-\-then download the
-gtkui binary.
-.sp
-Create a small test directory a.tmp containing a couple of files
-and/or subdirectories, e.g.,
-.nf
-    mkdir a.tmp
-    touch a.tmp/a a.tmp/b
-    mkdir a.tmp/d
-    touch a.tmp/d/f
-.fi
-.sp
-Copy this directory to b.tmp:
-.nf
-    cp \-r a.tmp b.tmp
-.fi
-.sp
-Synchronize a.tmp and b.tmp. 
-.sp
-Note: Since they are identical, synchronizing them would not propagate
-any changes, but Unison remembers the current state of both
-directories so that it can keep track of the changes.  Type:
-.nf
-    unison a.tmp b.tmp
-.fi
-.sp
-Textual Interface:
-.nf
-  * You should see a message notifying you that all the files are
-    actually equal. Return to the command line.
-.fi
-.sp
-Graphical Interface:
-.nf
-  * You should get a big empty window with a message at the bottom
-    notifying you that all files are identical. Choose the Exit item
-    from the File menu to get back to the command line.
-.fi
-.sp
-Change a.tmp and/or b.tmp file. For example:
-.nf
-     rm a.tmp/a
-     echo "Hello" > a.tmp/b
-     echo "Hello" > b.tmp/b
-     date > b.tmp/c
-     echo "Hi there" > a.tmp/d/h
-     echo "Hello there" > b.tmp/d/h
-.fi
-.sp
-Run Unison again:
-.nf
-    unison a.tmp b.tmp
-.fi
-.sp
-User interface displays only the files that have
-changed. If a file has been modified in a single replica, it is
-displayed with an arrow indicating the direction that the change
-needs to be propagated. For example,
-.nf
-              <\-\-\-  new file   c  [f]
-.fi
-.sp
-indicates that the file c has been modified only in the second
-replica, and that the default action is therefore to propagate the new
-version to the first replica. To follow Unison's recommendation, press
-"f" at the prompt.
-.sp
-If both replicas are modified and their contents are different, then
-the changes that are in conflict: <\-?\-> are displayed to indicate that
-Unison needs guidance on which replica should override the other.
-.nf
-  new file  <\-?\->  new file   d/h  []
-.fi
-.sp
-By default, neither version is propagated and both replicas
-remains as they are.
-.sp
-If both replicas have been modified but their new contents are the
-same as that of the file b, then no propagation is necessary and
-nothing is shown. Unison note downs that the file is up to date.
-.sp
-These display conventions are used by both of the user
-interfaces. The only difference lies in the way in which Unison's
-default actions are either accepted or overriden by the user.
-.sp
-Textual Interface:
-.sp
-.nf
-  * The status of each modified file is displayed. When the
-    copies of a file in the two replicas are not identical, the user
-    interface asks for the instructions to propagate the
-    changes. If there is a need of any default action, as indicated by
-    an arrow, you can press Return to go to the next changed file. If you
-    want to do change this file, press "<" or ">" to
-    force the change to propagate from right to left or from left
-    to right, or else press "/" to skip this file and leave both
-    replicas alone. When it reaches the end of the list of modified
-    files, Unison prompts you one more time whether it should proceed
-    with the updates that have been selected.
-    When Unison stops to wait for input from the user, pressing "?"
-    gives a list of possible responses and their meanings.
-.fi
-.sp
-Graphical Interface:
-.sp
-.nf
-  * The main window shows all the files that have been modified in
-    either a.tmp or b.tmp. To override a default action or to select
-    an action in the case when there is no default, select the
-    file, either by clicking on its name or by using the up\- and
-    down\-arrow keys. Press either the left\-arrow or "<" key to
-    cause the version in b.tmp to propagate to a.tmp or the
-    right\-arrow or ">" key which makes the a.tmp version to override
-    b.tmp.
-    Every keyboard command can also be invoked from the menus at the
-    top of the user interface. Conversely, each menu item is
-    annotated with its keyboard equivalent, if it has one.
-    When you finish setting the directions for propagating the
-    changes as shown in the main window, click "Go" button to set
-    them in motion. A check sign is be displayed next to each
-    filename when the file has been dealt with.
-.fi
-Remote Usage
-.sp
-.sp
-This section lets you know how to set up the Unison to synchronize replicas on two different
-machines.
-.sp
-Follow the instructions in the Installation section to download or
-build an executable version of Unison on the server machine, and
-install it somewhere on your search path. 
-Note: It does not matter whether
-you install the textual or graphical version, since the copy of Unison
-on the server does not need to display any user interface.
-.sp
-It is important that the version of Unison installed on the server
-machine is the same as that of the client machine.
-But some flexibility on the version of Unison at the client side can
-be achieved by using the \-addversionno option; see the "Preferences" section.
-.sp
-Unison provides two methods for
-communicating between the client and the server:
-.nf
-  * Remote shell method: To use this method, you must have some way of
-    invoking remote commands on the server from the client's command
-    line, using a facility such as ssh. This method is more convenient
-    since there is no need to manually start a "unison server"
-    process on the server. Remote shell method is secure when you use
-    ssh.
-  * Socket method: This method requires TCP
-    packets from the client to the server and back. A draconian
-    firewall can prevent this process, but it works in all the other cases.
-.fi
-.sp
-Decide which of these you want to try, and continue with the section
-"Remote Shell Method" or the section "Socket Method" , as appropriate.
-.sp
-Remote Shell Method
-.sp
-.sp
-The standard remote shell facility on Unix systems is ssh, which
-provides the same functionality as the older rsh but much better
-security. Ssh is available at ftp://ftp.cs.hut.fi/pub/ssh/;
-up\-to\-date binaries for some architectures can also be found at
-ftp://ftp.faqs.org/ssh/contrib. See section [1]A.2 for installation
-instructions for the Windows version.
-.sp
-Running ssh requires coordination between the client and server
-machines to establish that the client is allowed to invoke commands on
-the server. Refer to the ssh documentation for information
-on how to set this up. The examples in this section use ssh, but you
-can substitute rsh for ssh if you wish.
-.sp
-First, test whether you can invoke Unison on the server from the client.
-by typing the following
-.nf
-     ssh remotehostname unison \-version
-.fi
-.sp
-This prints the same version information as running
-.nf
-     unison \-version
-.fi
-.sp
-locally on the client. If remote execution fails, it means that there is a
-problem with the ssh setup such as the denial of the permission. It can
-also fail when the search path that is used when executing commands on
-the server does not contain the unison executable. For example: command not
-found.
-.sp
-Create a test directory a.tmp in your home directory on the client
-machine.
-.sp
-Test that the local unison client can start and connect to the remote
-server. Type
-.nf
-       unison \-testServer a.tmp ssh://remotehostname/a.tmp
-.fi
-.sp
-Enter your home directory with the help of cd command.Type:
-.nf
-       unison a.tmp ssh://remotehostname/a.tmp
-.fi
-.sp
-The result should be that the entire directory a.tmp is propagated
-from the client to your home directory on the server.
-.sp
-After finishing the first synchronization, change a few files and try
-synchronizing again. You should see similar results as in the local
-case.
-.sp
-If your user name on the server is not the same as on the client, you
-need to specify it on the command line:
-.nf
-       unison a.tmp ssh://username@remotehostname/a.tmp
-.fi
-.sp
-Notes:
-.nf
-  * If you want to put a.tmp some place other than your home directory
-    on the remote host, you can give an absolute path for it by adding
-    an extra slash between remotehostname and the beginning of the
-    path:
-       unison a.tmp ssh://remotehostname//absolute/path/to/a.tmp
-  * You can give an explicit path for the unison executable on the
-    server by using the command\-line option "\-servercmd
-    /full/path/name/of/unison" or adding
-    "servercmd=/full/path/name/of/unison" to your profile. See the
-    Profile section for more information. Similarly, you can specify an
-    explicit path for the ssh program using the "\-sshcmd" option.
-    Extra arguments can be passed to ssh by setting the \-sshargs
-    preference.
-.fi
-.sp
-Socket Method
-.sp
-.sp
-Warning: The socket method is insecure: not only are the texts of
-your changes transmitted over the network in unprotected form, it
-is also possible for anyone in the world to connect to the server
-process and read out the contents of your filesystem! 
-To do this they must understand the protocol that Unison uses to
-communicate between client and server, but all they need for this
-is a copy of the Unison sources. The socket method is provided
-only for expert users with specific needs. Everyone else should use
-the ssh method.
-.sp
-To run Unison over a socket connection, you must start a Unison daemon
-process on the server. This process runs continuously, waiting for
-connections over a given socket from client machines running Unison
-and processing their requests in turn.
-.sp
-Type the following to tart the daemon
-.nf
-    unison \-socket NNNN
-.fi
-.sp
-on the server machine, where NNNN is the socket number that the daemon
-should listen on for connections from clients. NNNN can be any large
-number that is not being used by some other program; if NNNN is
-already in use, Unison exits with an error message. Note that
-paths specified by the client is interpreted as relative to the
-directory in which you start the server process. This behavior is
-different from that of the ssh case, where the path is relative to your home
-directory on the server.
-.sp
-Create a test directory a.tmp in your home directory on the client
-machine. Type:
-.nf
-    unison a.tmp socket://remotehostname:NNNN/a.tmp
-.fi
-.sp
-The result should be that the entire directory a.tmp is propagated
-from the client to the server (a.tmp is be created on the server in
-the directory that the server was started from). After finishing the
-first synchronization, change a few files and try synchronizing again.
-You should see similar results as in the local case.
-.sp
-Since the socket method is not used by many people, its functionality
-is rather limited. For example, the server can only deal with one
-client at a time.
-.sp
-Using Unison for All Your Files
-.sp
-.sp
-Once you are comfortable with the basic operation of Unison, you may
-find it easy to use it regularly to synchronize your commonly
-used files. There are several possible ways to do this:
-.nf
- 1. Synchronize your whole home directory, using the Ignore facility
-    to avoid synchronizing temporary files and others that belong to
-    a single host. See the Ignore section to find more
-    information.
- 2. Create a subdirectory called shared in your home directory on each
-    host, and put all the files you want to synchronize into this
-    directory.
- 3. Create a subdirectory called shared in your home directory on each
-    host, and put links to all the files you want to synchronize into
-    this directory. Use the follow preference to make Unison treat
-    these links as transparent. See the Symbolic Links for more information. 
- 4. Make your home directory the root of the synchronization, but specify
-    to synchronize only some of the files and subdirectories
-    within it on any given run. This can be accomplished by using the
-    \-path switch on the command line:
-    unison /home/username ssh://remotehost//home/username \-path shared
-    The \-path option can be used as many times as needed, to
-    synchronize several files or subdirectories:
-    unison /home/username ssh://remotehost//home/username \\
-       \-path shared \\
-       \-path pub \\
-       \-path .netscape/bookmarks.html
-    These \-path arguments can also be put in your preference file. See
-    the section "Preferences" for an example.
-.fi
-.sp
-You may find that you need to maintain one or more profiles 
-on one of the hosts that they synchronize, since Unison is
-always initiated from this host. For example, if you are synchronizing
-a laptop with a fileserver, you can run Unison on the
-laptop. This is different from the usual situation with
-asymmetric mirroring programs like rdist, where the mirroring
-operation typically needs to be initiated from the machine with the
-most recent changes. The section "Profile" covers the syntax of Unison
-profiles, together with some sample profiles.
-.sp
-Tips on improving Unison's performance can be found on the
-Frequently Asked Questions page
-(http://www.cis.upenn.edu/~bcpierce/unison/faq.html).
-.sp
-Using Unison to Synchronize More Than Two Machines
-.sp
-.sp
-Unison is designed for synchronizing pairs of replicas. However, it is
-possible to use it to keep larger groups of machines in synchronization by
-performing multiple pairwise synchronizations.
-.sp
-If you need to do this, the most reliable way to set things up is to
-organize the machines into a star topology, with one machine
-designated as the hub and the other as spokes. Each spoke
-machine synchronizes only with the hub. The advantage of the star
-topology is that it eliminates the possibility of confusing spurious
-conflicts that arises from the fact that a separate archive is maintained
-by Unison for every pair of hosts that it synchronizes.
-.sp
-Going Further
-.sp
-.sp
-On\-line documentation for the various features of Unison can be
-obtained either by typing
-.nf
-     unison \-doc topics
-.fi
-.sp
-at the command line, or by selecting the Help menu in the graphical
-user interface. The same information is also available in a typeset
-User's Manual (HTML or PostScript format) through
-http://www.cis.upenn.edu/~bcpierce/unison.
-.sp
-If you use Unison regularly, you should subscribe to one of the
-mailing lists, to receive announcements of new versions. See the
-section "Mailing Lists" .
-.sp
-Basic Concepts
-.sp
-.sp
-To understand how Unison works, it is necessary to discuss a few
-straightforward concepts. These concepts are developed more rigorously
-and at more length in a number of papers, available at
-http://www.cis.upenn.edu/~bcpierce/papers. But the informal
-presentation here should be enough for most users.
-.sp
-Roots
-.sp
-.sp
-A replica's root tells Unison where to find a set of files to be
-synchronized, either on the local machine or on a remote host. For
-example,
-.nf
-   relative/path/of/root
-.fi
-.sp
-specifies a local root relative to the directory where Unison is
-started, while
-.nf
-   /absolute/path/of/root
-.fi
-.sp
-specifies a root relative to the top of the local filesystem,
-independent of where Unison is running. Remote roots can begin with
-ssh://, rsh:// to indicate that the remote server should be started
-with rsh or ssh:
-.nf
-   ssh://remotehost//absolute/path/of/root
-   rsh://user@remotehost/relative/path/of/root
-.fi
-.sp
-If the remote server is already running in the socket mode, then the
-syntax
-.nf
-   socket://remotehost:portnum//absolute/path/of/root
-   socket://remotehost:portnum/relative/path/of/root
-.fi
-.sp
-is used to specify the hostname and the port that the client Unison
-should use to contact it.
-.sp
-The syntax for roots is based on that of URIs described in RFC 2396.
-The full grammar is:
-.sp
-.nf
-replica ::= [protocol:]//[user@][host][:port][/path]
-         |  path
-.fi
-.sp
-.nf
-protocol ::= file
-          |  socket
-          |  ssh
-          |  rsh
-.fi
-.sp
-.nf
-user ::= [\-_a\-zA\-Z0\-9]+
-.fi
-.sp
-.nf
-host ::= [\-_a\-zA\-Z0\-9.]+
-.fi
-.sp
-.nf
-port ::= [0\-9]+
-.fi
-.sp
-When path is given without any protocol prefix, the protocol is
-assumed to be file:. Under Windows, it is possible to synchronize with
-a remote directory using the file: protocol over the Windows Network
-Neighborhood. For example,
-.nf
-    unison foo //host/drive/bar
-.fi
-.sp
-synchronizes the local directory foo with the directory drive:\\bar on
-the machine host, provided that host is accessible via Network
-Neighborhood. When the file: protocol is used in this way, there is no
-need for a Unison server to be running on the remote host. However,
-running Unison this way is only a good idea if the remote host is
-reached by a very fast network connection, since the full contents of
-every file in the remote replica have to be transferred to the
-local machine to detect updates.
-.sp
-The names of roots are canonized by Unison before it uses them to
-compute the names of the corresponding archive files, so
-//saul//home/bcpierce/common and //saul.cis.upenn.edu/common is
-recognized as the same replica under different names.
-.sp
-Paths
-.sp
-.sp
-A path refers to a point within a set of files being synchronized; it
-is specified relative to the root of the replica.
-.sp
-Formally, a path is just a sequence of names, separated by /. Note
-that the path separator character is always a forward slash, no matter
-what operating system Unison is running on. Forward slashes are
-converted to backslashes as necessary when paths are converted to
-filenames in the local filesystem on a particular host. (For example,
-suppose if you run Unison on a Windows system, synchronizing the
-local root c:\\pierce with the root
-ssh://saul.cis.upenn.edu/home/bcpierce on a Unix server. Then the path
-current/todo.txt refers to the file c:\\pierce\\current\\todo.txt on the
-client and /home/bcpierce/current/todo.txt on the server.)
-.sp
-The empty path (i.e., the empty sequence of names) denotes the whole
-replica. Unison displays the empty path as "[root]."
-.sp
-If p is a path and q is a path beginning with p, then q is said to be
-a descendant of p. (Each path is also a descendant of itself.)
-.sp
-What is an Update?
-.sp
-.sp
-The contents of a path p in a particular replica could be a file, a
-directory, a symbolic link, or absent (if p does not refer to anything
-at all in that replica). More specifically:
-.nf
-  * If p refers to an ordinary file, then the contents of p are the
-    actual contents of this file (a string of bytes) plus the current
-    permission bits of the file.
-  * If p refers to a symbolic link, then the contents of p are just
-    the string specifying where the link points.
-  * If p refers to a directory, then the contents of p are just the
-    token "DIRECTORY" plus the current permission bits of the
-    directory.
-  * If p does not refer to anything in this replica, then the contents
-    of p are the token "ABSENT."
-.fi
-.sp
-Unison keeps a record of the contents of each path after each
-successful synchronization of that path (i.e., it remembers the
-contents at the last moment when they were the same in the two
-replicas).
-.sp
-This means that a path is updated (in some replica) if its current
-contents are different from its contents the last time it was
-successfully synchronized. Note that whether a path is updated has
-nothing to do with its last modification time\-\-Unison considers only
-the contents when determining whether an update has occurred. This
-means that touching a file without changing its contents will not be
-recognized as an update. A file can even be changed several times and
-then changed back to its original contents; as long as Unison is only
-run at the end of this process, no update is be recognized.
-.sp
-What Unison actually calculates is a close approximation to this
-definition; see the section "Caveats and Shortcomings" .
-.sp
-What is a Conflict?
-.sp
-.sp
-A path is said to be conflicting if the following conditions all hold:
-.nf
- 1. it has been updated in one replica,
- 2. it or any of its descendants has been updated in the other
-    replica, and
- 3. its contents in the two replicas are not identical.
-.fi
-.sp
-Reconciliation
-.sp
-.sp
-Unison operates in several distinct stages:
-.nf
- 1. On each host, it compares its archive file (which records the
-    state of each path in the replica when it was last synchronized)
-    with the current contents of the replica, to determine which paths
-    have been updated.
- 2. It checks for "false conflicts" \-\- paths that have been updated on
-    both replicas, but whose current values are identical. These paths
-    are silently marked as synchronized in the archive files in both
-    replicas.
- 3. It displays all the updated paths to the user. For updates that do
-    not conflict, it suggests a default action (propagating the new
-    contents from the updated replica to the other). Conflicting
-    updates are just displayed. The user is given an opportunity to
-    examine the current state of affairs, change the default actions
-    for nonconflicting updates, and choose actions for conflicting
-    updates.
- 4. It performs the selected actions, one at a time. Each action is
-    performed by first transferring the new contents to a temporary
-    file on the receiving host, then atomically moving them into
-    place.
- 5. It updates its archive files to reflect the new state of the
-    replicas.
-.fi
-.sp
-Invariants
-.sp
-.sp
-Given the importance and delicacy of the job that it performs, it is
-important to understand both what a synchronizer does under normal
-conditions and what can happen under unusual conditions such as system
-crashes and communication failures.
-.sp
-Unison is careful to protect both its internal state and the state of
-the replicas at every point in this process. Specifically, the
-following guarantees are enforced:
-.nf
-  * At every moment, each path in each replica has either (1) its
-    original contents (i.e., no change at all has been made to this
-    path), or (2) its correct final contents (i.e., the value that the
-    user expected to be propagated from the other replica).
-  * At every moment, the information stored on disk about Unison's
-    private state can be either (1) unchanged, or (2) updated to
-    reflect those paths that have been successfully synchronized.
-.fi
-.sp
-The upshot is that it is safe to interrupt Unison at any time, either
-manually or accidentally. [Caveat: the above is almost true there are
-occasionally brief periods where it is not (and, because of
-shortcoming of the Posix filesystem API, cannot be); in particular,
-when it is copying a file onto a directory or vice versa, it must
-first move the original contents out of the way. If Unison gets
-interrupted during one of these periods, some manual cleanup may be
-required. In this case, a file called DANGER.README is left in
-your home directory, containing information about the operation that
-was interrupted. The next time you try to run Unison, it notices
-this file and warn you about it.]
-.sp
-If an interruption happens while it is propagating updates, then there
-may be some paths for which an update has been propagated but which
-have not been marked as synchronized in Unison's archives. This is no
-problem: the next time Unison runs, it detects changes to these
-paths in both replicas, notice that the contents are now equal, and
-mark the paths as successfully updated when it writes back its private
-state at the end of this run.
-.sp
-If Unison is interrupted, it may sometimes leave temporary working
-files (with suffix .tmp) in the replicas. It is safe to delete these
-files. Also, if the backups flag is set, Unison leaves around old
-versions of files that it overwrites, with names like
-file.0.unison.bak. These can be deleted safely when they are no longer
-wanted.
-.sp
-Unison is not bothered by clock skew between the different hosts on
-which it is running. It only performs comparisons between timestamps
-obtained from the same host, and the only assumption it makes about
-them is that the clock on each system always runs forward.
-.sp
-If Unison finds that its archive files have been deleted (or that the
-archive format has changed and they cannot be read, or that they do not
-exist because this is the first run of Unison on these particular
-roots), it takes a conservative approach: it behaves as though the
-replicas had both been completely empty at the point of the last
-synchronization. The effect of this is that, on the first run, files
-that exist in only one replica will be propagated to the other, while
-files that exist in both replicas but are unequal will be marked as
-conflicting.
-.sp
-Touching a file without changing its contents should never affect
-whether or not Unison does an update. (When running with the fastcheck
-preference set to true\-\-the default on Unix systems\-\-Unison uses file
-modtimes for a quick first pass to tell which files have definitely
-not changed; then, for each file that might have changed, it computes
-a fingerprint of the file's contents and compares it against the
-last\-synchronized contents. Also, the \-times option allows you to
-synchronize file times, but it does not cause identical files to be
-changed; Unison modifies the file times.)
-.sp
-It is safe to "brainwash" Unison by deleting its archive files on both
-replicas. The next time it runs, it assumes that all the files it
-sees in the replicas are new.
-.sp
-It is safe to modify files while Unison is working. If Unison
-discovers that it has propagated an out\-of\-date change, or that the
-file it is updating has changed on the target replica, it indicates
-a failure signal for that file. Run Unison again to propagate the latest
-change.
-.sp
-Changes to the ignore patterns from the user interface (e.g., using
-the `i' key) are immediately reflected in the current profile.
-.sp
-Caveats and Shortcomings
-.sp
-.sp
-Here are some things to be careful of when using Unison.
-.nf
-  * In the interests of speed, the update detection algorithm may
-    (depending on which OS architecture that you run Unison on)
-    actually use an approximation to the definition given in the
-    section "What is an Update?" .
-    In particular, the Unix implementation does not compare the actual
-    contents of files to their previous contents, but simply looks at
-    each file's inode number and modtime; if neither of these have
-    changed, then it concludes that the file has not been changed.
-    Under normal circumstances, this approximation is safe, in the
-    sense that it may sometimes detect "false updates" will never miss
-    a real one. However, it is possible to fool it, for example by
-    using retouch to change a file's modtime back to a time in the
-    past.
-  * If you synchronize between a single\-user filesystem and a shared
-    Unix server, you should pay attention to your permission bits: by
-    default, Unison synchronizes permissions verbatim, which may
-    leave group\-writable files on the server that could be written
-    over by a lot of people.
-    You can control this by setting your umask on both computers to
-    something like 022, masking out the "world write" and "group
-    write" permission bits.
-    Unison does not synchronize the setuid and setgid bits, for
-    security.
-  * The graphical user interface is single\-threaded. This means that
-    if Unison is performing some long\-running operation, the display
-    is not repainted until it finishes. It is recommended not to try
-    anything with the user interface while Unison is in the
-    middle of detecting changes or propagating files.
-  * Unison does not understand hard links.
-  * It is important to be a little careful when renaming directories
-    containing "ignore"d files.
-    For example, suppose Unison is synchronizing directory A between
-    the two machines called the "local" and the "remote" machine;
-    suppose directory A contains a subdirectory D; and suppose D on
-    the local machine contains a file or subdirectory P that matches
-    an ignore directive in the profile used to synchronize. Thus path
-    A/D/P exists on the local machine but not on the remote machine.
-    If D is renamed to D' on the remote machine, and this change is
-    propagated to the local machine, all such files or subdirectories
-    P are deleted. This is because Unison sees the rename as a
-    delete and a separate create: it deletes the old directory
-    (including the ignored files) and creates a new one (not including
-    the ignored files, since they are completely invisible to it).
-  * Unison does not support synchronization of ACL and extended file attributes.
-.fi
-.sp
-Running Unison
-.sp
-.sp
-There are several ways to start Unison.
-.nf
-  * Typing "unison profile" on the command line. Unison looks for
-    a file profile.prf in the .unison directory. If this file does not
-    specify a pair of roots, Unison prompts for them and add them
-    to the information specified by the profile.
-  * Typing "unison profile root1 root2" on the command line. In this
-    case, Unison uses a profile, which does not contain any root
-    directives.
-  * Typing "unison root1 root2" on the command line. This has the same
-    effect as typing "unison default root1 root2."
-  * Typing just "unison" (or invoking Unison by clicking on a desktop
-    icon). In this case, Unison asks for the profile to use for
-    synchronization (or create a new one, if necessary).
-.fi
-.sp
-The .unison Directory
-.sp
-.sp
-Unison stores a variety of information in a private directory on each
-host. If the environment variable UNISON is defined, then its value
-is used as the name of this directory. If UNISON is not defined,
-then the name of the directory depends on which operating system you
-are using. In Unix, the default is to use $HOME/.unison. In Windows,
-if the environment variable USERPROFILE is defined, then the directory
-will be $USERPROFILE\\.unison; otherwise if HOME is defined, it will be
-$HOME\\.unison; otherwise, it will be c:\\.unison.
-.sp
-The archive file for each replica is found in the .unison directory on
-that replica's host. Profiles (described below) are always taken from
-the .unison directory on the client host.
-.sp
-Note that Unison maintains a completely different set of archive files
-for each pair of roots.
-.sp
-It is not recommended to synchronize the whole .unison directory, as this
-involves frequent propagation of large archive files. It should be
-safe to do it, though, if you really want to. Synchronizing just the
-profile files in the .unison directory is definitely OK.
-.sp
-Archive Files
-.sp
-.sp
-The name of the archive file on each replica is calculated from
-.nf
-  * the canonical names of all the hosts (short names like saul are
-    converted into full addresses like saul.cis.upenn.edu),
-  * the paths to the replicas on all the hosts (again, relative
-    pathnames, symbolic links, etc. are converted into full, absolute
-    paths), and
-  * an internal version number that is changed whenever a new Unison
-    release changes the format of the information stored in the
-    archive.
-.fi
-.sp
-This method should work well for most users. However, it is
-occasionally useful to change the way archive names are generated.
-Unison provides two ways of doing this.
-.sp
-The function that finds the canonical hostname of the local host
-(which is used, for example, in calculating the name of the archive
-file used to remember which files have been synchronized) normally
-uses the gethostname operating system call. However, if the
-environment variable UNISONLOCALHOSTNAME is set, its value will be
-used instead. This makes it easier to use Unison in situations where a
-machine's name changes frequently (e.g., because it is a laptop and
-gets moved around a lot).
-.sp
-A more powerful way of changing archive names is provided by the
-rootalias preference. The preference file may contain any number of
-lines of the form:
-.nf
- rootalias = //hostnameA//path\-to\-replicaA \-> //hostnameB//path\-to\-replicaB
-.fi
-.sp
-When calculating the name of the archive files for a given pair of
-roots, Unison replaces any root that matches the left\-hand side of any
-rootalias rule by the corresponding right\-hand side.
-.sp
-So, if you need to relocate a root on one of the hosts, you can add a
-rule of the form:
-.nf
- rootalias = //new\-hostname//new\-path \-> //old\-hostname//old\-path
-.fi
-.sp
-Warning: The rootalias option is dangerous and should only be used if
-you are sure that you know what you are doing. In particular, it should only
-be used if you are positive that either (1) both the original root and
-the new alias refer to the same set of files, or (2) the files have
-been relocated so that the original name is now invalid and will never
-be used again. (If the original root and the alias refer to different
-sets of files, Unison's update detector could get confused.) After
-introducing a new rootalias, it is a good idea to run Unison a few
-times interactively (with the batch flag off, etc.) and carefully
-check that things look reasonable\-\-in particular, that update
-detection is working as expected.
-Preferences
-.sp
-.sp
-Many details of Unison's behavior are configurable by user\-settable
-"preferences."
-.sp
-Some preferences are boolean\-valued; these are often called flags.
-Others take numeric or string arguments, indicated in the preferences
-list by n or xxx. Most of the string preferences can be given several
-times; the arguments are accumulated into a list internally.
-.sp
-There are two ways to set the values of preferences: temporarily, by
-providing command\-line arguments to a particular run of Unison, or
-permanently, by adding commands to a profile in the .unison directory
-on the client host. The order of preferences (either on the command
-line or in preference files) is not significant. On the command line,
-preferences and other arguments (the profile name and roots) can be
-intermixed in any order.
-.sp
-To set the value of a preference p from the command line, add an
-argument \-p (for a boolean flag) or \-p n or \-p xxx (for a numeric or
-string preference) anywhere on the command line. To set a boolean flag
-to false on the command line, use \-p=false.
-.sp
-Here are all the preferences supported by Unison. This list can be
-obtained by typing unison \-help.
-.sp
-.SH "USAGE: UNISON [OPTIONS]"
-.sp
-.nf
-or unison root1 root2 [options]
-or unison profilename [options]
-.fi
-.SH "OPTIONS:"
-.sp
-.nf
-  \-addprefsto xxx     file to add new prefs to
-  \-addversionno       add version number to name of unison executable on server
-  \-auto               automatically accept default actions
-  \-backup xxx         add a pattern to the backup list
-  \-backupcurrent xxx  add a pattern to the backupcurrent list
-  \-backupcurrentnot xxx  add a pattern to the backupcurrentnot list
-  \-backupdir xxx      Directory for storing centralized backups
-  \-backuplocation xxx  where backups are stored ('local' or 'central')
-  \-backupnot xxx      add a pattern to the backupnot list
-  \-backupprefix xxx   prefix for the names of backup files
-  \-backups            keep backup copies of all files (see also 'backup')
-  \-backupsuffix xxx   a suffix to be added to names of backup files
-  \-batch              batch mode: ask no questions at all
-  \-confirmbigdeletes      request confirmation for whole\-replica deletes
-  \-confirmmerge       ask for confirmation before commiting results of a merge
-  \-contactquietly      Suppress the 'contacting server' message during startup
-  \-debug xxx          debug module xxx ('all' \-> everything, 'verbose' \-> more)
-  \-doc xxx            show documentation ('\-doc topics' lists topics)
-  \-dumbtty            do not try to change terminal settings in text UI
-  \-fastcheck xxx      do fast update detection (`true', `false', or `default')
-  \-follow xxx         add a pattern to the follow list
-  \-force xxx          force changes from this replica to the other
-  \-forcepartial xxx   add a pattern to the forcepartial list
-  \-group              synchronize group
-  \-height n           height (in lines) of main window in graphical interface
-  \-host xxx           bind the socket to this host name in server socket mode
-  \-ignore xxx         add a pattern to the ignore list
-  \-ignorecase xxx     ignore upper/lowercase in filenames (`true', `false', or
-`default')
-  \-ignorelocks        ignore locks left over from previous run (dangerous!)
-  \-ignorenot xxx      add a pattern to the ignorenot list
-  \-immutable xxx      add a pattern to the immutable list
-  \-immutablenot xxx   add a pattern to the immutablenot list
-  \-key xxx            define a keyboard shortcut for this profile (in some UIs)
-  \-killserver         kill server when done (even when using sockets)
-  \-label xxx          provide a descriptive string label for this profile
-  \-log                record actions in file specified by logfile preference
-  \-logfile xxx        Log file name
-  \-maxbackups n       number of backed up versions of a file
-  \-maxthreads n       maximum number of simultaneous file transfers
-  \-merge xxx          add a pattern to the merge list
-  \-mountpoint xxx     abort if this path does not exist
-  \-numericids         do not map uid/gid values by user/group names
-  \-owner              synchronize owner
-  \-path xxx           path to synchronize
-  \-perms n            part of the permissions which is synchronized
-  \-prefer xxx         choose this replica's version for conflicting changes
-  \-preferpartial xxx  add a pattern to the preferpartial list
-  \-pretendwin         Use creation times for detecting updates
-  \-repeat xxx         synchronize repeatedly (text interface only)
-  \-retry n            re\-try failed synchronizations N times (text interface on
-ly)
-  \-root xxx           root of a replica
-  \-rootalias xxx      Register alias for canonical root names
-  \-rsrc xxx           synchronize resource forks and HFS meta\-data (`true', `fa
-lse', or `default')
-  \-rsync              activate the rsync transfer mode
-  \-selftest           run internal tests and exit
-  \-servercmd xxx      name of unison executable on remote server
-  \-showarchive        show name of archive and 'true names' (for rootalias) of
-roots
-  \-silent             print nothing (except error messages)
-  \-socket xxx         act as a server on a socket
-  \-sortbysize         list changed files by size, not name
-  \-sortfirst xxx      add a pattern to the sortfirst list
-  \-sortlast xxx       add a pattern to the sortlast list
-  \-sortnewfirst       list new before changed files
-  \-sshargs xxx        other arguments (if any) for remote shell command
-  \-sshcmd xxx         path to the ssh executable
-  \-terse              suppress status messages
-  \-testserver         exit immediately after the connection to the server
-  \-times              synchronize modification times
-  \-ui xxx             select user interface ('text' or 'graphic'); command\-line
- only
-  \-version            print version and exit
-  \-xferbycopying      optimize transfers using local copies, if possible
-.fi
-.sp
-Here, in more detail, are what they do. Many are discussed in even
-greater detail in other sections of the manual.
-.nf
-addprefsto xxx
-       By default, new preferences added by Unison (e.g., new ignore
-       clauses) will be appended to whatever preference file Unison
-       was told to load at the beginning of the run. Setting the
-       preference addprefsto filename makes Unison add new preferences
-       to the file named filename instead.
-addversionno
-       When this flag is set to true, Unison will use
-       unison\-currentversionnumber instead of just unison as the
-       remote server command. This allows multiple binaries for
-       different versions of unison to coexist conveniently on the
-       same server: whichever version is run on the client, the same
-       version will be selected on the server.
-auto
-       When set to true, this flag causes the user interface to skip
-       asking for confirmations on non\-conflicting changes. (More
-       precisely, when the user interface is done setting the
-       propagation direction for one entry and is about to move to the
-       next, it will skip over all non\-conflicting entries and go
-       directly to the next conflict.)
-backup xxx
-       Including the preference \-backup pathspec causes Unison to keep
-       backup files for each path that matches pathspec. These backup
-       files are kept in the directory specified by the backuplocation
-       preference. The backups are named according to the backupprefix
-       and backupsuffix preferences. The number of versions that are
-       kept is determined by the maxbackups preference.
-       The syntax of pathspec is described in the section "Path
-       Specification" .
-backupcurrent xxx
-       Including the preference \-backupcurrent pathspec causes Unison
-       to keep a backup of the current version of every file matching
-       pathspec. This file will be saved as a backup with version
-       number 000. Such backups can be used as inputs to external
-       merging programs, for instance. See the documentatation for the
-       merge preference. For more details, see the section "Merging
-       Conflicting Versions" .
-       The syntax of pathspec is described in the section "Path
-       Specification" .
-backupcurrentnot xxx
-       Exceptions to backupcurrent, like the ignorenot preference.
-backupdir xxx
-       If this preference is set, Unison will use it as the name of
-       the directory used to store backup files specified by the
-       backup preference, when backuplocation is set to central. It is
-       checked after the UNISONBACKUPDIR environment variable.
-backuplocation xxx
-       This preference determines whether backups should be kept
-       locally, near the original files, or in a central directory
-       specified by the backupdir preference. If set to local, backups
-       will be kept in the same directory as the original files, and
-       if set to central, backupdir will be used instead.
-backupnot xxx
-       The values of this preference specify paths or individual files
-       or regular expressions that should not be backed up, even if
-       the backup preference selects them\-\-i.e., it selectively
-       overrides backup. The same caveats apply here as with ignore
-       and t ignorenot.
-backupprefix xxx
-       When a backup for a file NAME is created, it is stored in a
-       directory specified by backuplocation, in a file called
-       backupprefixNAMEbackupsuffix. backupprefix can include a
-       directory name (causing Unison to keep all backup files for a
-       given directory in a subdirectory with this name), and both
-       backupprefix and backupsuffix can contain the string$VERSION,
-       which will be replaced by the age of the backup (1 for the most
-       recent, 2 for the second most recent, and so on...). This
-       keyword is ignored if it appears in a directory name in the
-       prefix; if it does not appear anywhere in the prefix or the
-       suffix, it will be automatically placed at the beginning of the
-       suffix.
-backups
-       Setting this flag to true is equivalent to setting
-       backuplocation to local and backup to Name *.
-backupsuffix xxx
-       See backupprefix for full documentation.
-batch
-       When this is set to true, the user interface will ask no
-       questions at all. Non\-conflicting changes will be propagated;
-       conflicts will be skipped.
-confirmbigdeletes
-       When this is set to true, Unison will request an extra
-       confirmation if it appears that the entire replica has been
-       deleted, before propagating the change. If the batch flag is
-       also set, synchronization will be aborted. When the path
-       preference is used, the same confirmation will be requested for
-       top\-level paths. (At the moment, this flag only affects the
-       text user interface.) See also the mountpoint preference.
-confirmmerge
-       Setting this preference causes both the text and graphical
-       interfaces to ask the user if the results of a merge command
-       may be commited to the replica or not. Since the merge command
-       works on temporary files, the user can then cancel all the
-       effects of applying the merge if it turns out that the result
-       is not satisfactory. In batch\-mode, this preference has no
-       effect.
-contactquietly
-       If this flag is set, Unison will skip displaying the
-       `Contacting server' message (which some users find annoying)
-       during startup.
-debug xxx
-       This preference is used to make Unison print various sorts of
-       information about what it is doing internally on the standard
-       error stream. It can be used many times, each time with the
-       name of a module for which debugging information should be
-       printed. Possible arguments for debug can be found by looking
-       for calls to Util.debug in the sources (using, e.g., grep).
-       Setting \-debug all causes information from all modules to be
-       printed (this mode of usage is the first one to try, if you are
-       trying to understand something that Unison seems to be doing
-       wrong); \-debug verbose turns on some additional debugging
-       output from some modules (e.g., it will show exactly what bytes
-       are being sent across the network).
-diff xxx
-       This preference can be used to control the name and
-       command\-line arguments of the system utility used to generate
-       displays of file differences. The default is `diff \-u CURRENT2
-       CURRENT1'. If the value of this preference contains the
-       substrings CURRENT1 and CURRENT2, these will be replaced by the
-       names of the files to be diffed. If not, the two filenames will
-       be appended to the command. In both cases, the filenames are
-       suitably quoted.
-doc xxx
-       The command\-line argument \-doc secname causes unison to display
-       section secname of the manual on the standard output and then
-       exit. Use \-doc all to display the whole manual, which includes
-       exactly the same information as the printed and HTML manuals,
-       modulo formatting. Use \-doc topics to obtain a list of the
-       names of the various sections that can be printed.
-dumbtty
-       When set to true, this flag makes the text mode user interface
-       avoid trying to change any of the terminal settings. (Normally,
-       Unison puts the terminal in `raw mode', so that it can do
-       things like overwriting the current line.) This is useful, for
-       example, when Unison runs in a shell inside of Emacs.
-       When dumbtty is set, commands to the user interface need to be
-       followed by a carriage return before Unison will execute them.
-       (When it is off, Unison recognizes keystrokes as soon as they
-       are typed.)
-       This preference has no effect on the graphical user interface.
-dumparchives
-       When this preference is set, Unison will create a file
-       unison.dump on each host, containing a text summary of the
-       archive, immediately after loading it.
-fastcheck xxx
-       When this preference is set to true, Unison will use the
-       modification time and length of a file as a `pseudo inode
-       number' when scanning replicas for updates, instead of reading
-       the full contents of every file. Under Windows, this may cause
-       Unison to miss propagating an update if the modification time
-       and length of the file are both unchanged by the update.
-       However, Unison will never overwrite such an update with a
-       change from the other replica, since it always does a safe
-       check for updates just before propagating a change. Thus, it is
-       reasonable to use this switch under Windows most of the time
-       and occasionally run Unison once with fastcheck set to false,
-       if you are worried that Unison may have overlooked an update.
-       The default value of the preference is auto, which causes
-       Unison to use fast checking on Unix replicas (where it is safe)
-       and slow checking on Windows replicas. For backward
-       compatibility, yes, no, and default can be used in place of
-       true, false, and auto. See the section "Fast Checking" for more
-       information.
-follow xxx
-       Including the preference \-follow pathspec causes Unison to
-       treat symbolic links matching pathspec as `invisible' and
-       behave as if the object pointed to by the link had appeared
-       literally at this position in the replica. See the section
-       "Symbolic Links" for more details. The syntax of pathspec> is
-       described in the section "Path Specification" .
-force xxx
-       Including the preference \-force root causes Unison to resolve
-       all differences (even non\-conflicting changes) in favor of
-       root. This effectively changes Unison from a synchronizer into
-       a mirroring utility.
-       You can also specify \-force newer (or \-force older) to force
-       Unison to choose the file with the later (earlier) modtime. In
-       this case, the \-times preference must also be enabled.
-       This preference is overridden by the forcepartial preference.
-       This preference should be used only if you are sure you know
-       what you are doing!
-forcepartial xxx
-       Including the preference forcepartial PATHSPEC \-> root causes
-       Unison to resolve all differences (even non\-conflicting
-       changes) in favor of root for the files in PATHSPEC (see the
-       section "Path Specification" for more information). This
-       effectively changes Unison from a synchronizer into a mirroring
-       utility.
-       You can also specify forcepartial PATHSPEC \-> newer (or
-       forcepartial PATHSPEC older) to force Unison to choose the file
-       with the later (earlier) modtime. In this case, the \-times
-       preference must also be enabled.
-       This preference should be used only if you are sure you know
-       what you are doing!
-group
-       When this flag is set to true, the group attributes of the
-       files are synchronized. Whether the group names or the group
-       identifiers are synchronizeddepends on the preference numerids.
-height n
-       Used to set the height (in lines) of the main window in the
-       graphical user interface.
-ignore xxx
-       Including the preference \-ignore pathspec causes Unison to
-       completely ignore paths that match pathspec (as well as their
-       children). This is useful for avoiding synchronizing temporary
-       files, object files, etc. The syntax of pathspec is described
-       in the section "Path Specification" , and further details on
-       ignoring paths is found in the section "Ignoring Paths" .
-ignorecase xxx
-       When set to true, this flag causes Unison to treat filenames as
-       case insensitive\-\-i.e., files in the two replicas whose names
-       differ in (upper\- and lower\-case) `spelling' are treated as the
-       same file. When the flag is set to false, Unison will treat all
-       filenames as case sensitive. Ordinarily, when the flag is set
-       to t default, filenames are automatically taken to be
-       case\-insensitive if either host is running Windows or OSX. In
-       rare circumstances it is useful to set the flag manually (e.g.
-       when running Unison on a Unix system with a FAT [Windows]
-       volume mounted).
-ignorelocks
-       When this preference is set, Unison will ignore any lock files
-       that may have been left over from a previous run of Unison that
-       was interrupted while reading or writing archive files; by
-       default, when Unison sees these lock files it will stop and
-       request manualintervention. This option should be set only if
-       you are positive that no other instance of Unison might be
-       concurrently accessing the same archive files (e.g., because
-       there was only one instance of unison running and it has just
-       crashed or you have just killed it). It is probably not a good
-       idea to set this option in a profile: it is intended for
-       command\-line use.
-ignorenot xxx
-       This preference overrides the preference ignore. It gives a
-       list of patterns (in the same format as ignore) for paths that
-       should definitely not be ignored, whether or not they happen to
-       match one of the ignore patterns.
-       Note that the semantics of ignore and ignorenot is a little
-       counter\-intuitive. When detecting updates, Unison examines
-       paths in depth\-first order, starting from the roots of the
-       replicas and working downwards. Before examining each path, it
-       checks whether it matches ignore and does not match ignorenot;
-       in this case it skips this path and all its descendants. This
-       means that, if some parent of a given path matches an ignore
-       pattern, then it will be skipped even if the path itself
-       matches an ignorenot pattern. In particular, putting ignore =
-       Path * in your profile and then using t ignorenot to select
-       particular paths to be synchronized will not work. Instead, you
-       should use the path preference to choose particular paths to
-       synchronize.
-immutable xxx
-       This preference specifies paths for directories whose children
-       are all immutable files \-\- i.e., once a file has been created,
-       its contents never changes. When scanning for updates, Unison
-       does not check whether these files have been modified; this can
-       speed update detection significantly (in particular, for mail
-       directories).
-immutablenot xxx
-       This preference overrides immutable.
-key xxx
-       Used in a profile to define a numeric key (0\-9) that can be
-       used in the graphical user interface to switch immediately to
-       this profile.
-killserver
-       When set to true, this flag causes Unison to kill the remote
-       server process when the synchronization is finished. This
-       behavior is the default for ssh connections, so this preference
-       is not normally needed when running over ssh; it is provided so
-       that socket\-mode servers can be killed off after a single run
-       of Unison, rather than waiting to accept future connections.
-       (Some users prefer to start a remote socket server for each run
-       of Unison, rather than leaving one running all the time.)
-label xxx
-       Used in a profile to provide a descriptive string documenting
-       its settings. (This is useful for users that switch between
-       several profiles, especially using the `fast switch' feature of
-       the graphical user interface.)
-log
-       When this flag is set, Unison will log all changes to the
-       filesystems on a file.
-logfile xxx
-       By default, logging messages will be appended to the file
-       unison.log in your HOME directory. Set this preference if you
-       prefer another file.
-maxbackups n
-       This preference specifies the number of backup versions that
-       will be kept by unison, for each path that matches the
-       predicate backup. The default is 2.
-maxthreads n
-       This preference controls how much concurrency is allowed during
-       the transport phase. Normally, it should be set reasonably high
-       (default is 20) to maximize performance, but when Unison is
-       used over a low\-bandwidth link it may be helpful to set it
-       lower (e.g. to 1) so that Unison does not soak up all the
-       available bandwidth.
-merge xxx
-       This preference can be used to run a merge program which will
-       create a new version for each of the files and the backup, with
-       the last backup and the both replicas. Setting the merge
-       preference for a path will also cause this path to be backed
-       up, just like t backup. The syntax of pathspec>cmd is described
-       in the section "Path Specification" , and further details on
-       Merging functions are present in the section "Merging files" .
-mountpoint xxx
-       Including the preference \-mountpoint PATH causes Unison to
-       double\-check, at the end of update detection, that PATH exists
-       and abort if it does not. This is useful when Unison is used to
-       synchronize removable media. This preference can be given more
-       than once. See the section "Mount Points" .
-numericids
-       When this flag is set to true, groups and users are
-       synchronized numerically, rather than by name.
-       The special uid 0 and the special group 0 are never mapped via
-       user/group names even if this preference is not set.
-owner
-       When this flag is set to true, the owner attributes of the
-       files are synchronized. Whether the owner names or the owner
-       identifiers are synchronizeddepends on the preference
-       extttnumerids.
-path xxx
-       When no path preference is given, Unison will simply
-       synchronize the two entire replicas, beginning from the given
-       pair of roots. If one or more path preferences are given, then
-       Unison will synchronize only these paths and their children.
-       (This is useful for doing a fast sync of just one directory,
-       for example.) Note that path preferences are intepreted
-       literally\-\-they are not regular expressions.
-perms n
-       The integer value of this preference is a mask indicating which
-       permission bits should be synchronized. It is set by default to
-       0o1777: all bits but the set\-uid and set\-gid bits are
-       synchronised (synchronizing theses latter bits can be a
-       security hazard). If you want to synchronize all bits, you can
-       set the value of this preference to \-1.
-prefer xxx
-       Including the preference \-prefer root causes Unison always to
-       resolve conflicts in favor of root, rather than asking for
-       guidance from the user. (The syntax of root is the same as for
-       the root preference, plus the special values newer and older.)
-       This preference is overridden by the preferpartial preference.
-       This preference should be used only if you are sure you know
-       what you are doing!
-preferpartial xxx
-       Including the preference preferpartial PATHSPEC \-> root causes
-       Unison always to resolve conflicts in favor of root, rather
-       than asking for guidance from the user, for the files in
-       PATHSPEC (see the section "Path Specification" for more
-       information). (The syntax of root is the same as for the root
-       preference, plus the special values newer and older.)
-       This preference should be used only if you are sure you know
-       what you are doing!
-pretendwin
-       When set to true, this preference makes Unison use
-       Windows\-style fast update detection (using file creation times
-       as "pseudo\-inode\-numbers"), even when running on a Unix system.
-       This switch should be used with care, as it is less safe than
-       the standard update detection method, but it can be useful for
-       synchronizing VFAT filesystems (which do not support inode
-       numbers) mounted on Unix systems. The fastcheck option should
-       also be set to true.
-repeat xxx
-       Setting this preference causes the text\-mode interface to
-       synchronize repeatedly, rather than doing it just once and
-       stopping. If the argument is a number, Unison will pause for
-       that many seconds before beginning again.
-retry n
-       Setting this preference causes the text\-mode interface to try
-       again to synchronize updated paths where synchronization fails.
-       Each such path will be tried N times.
-root xxx
-       Each use of this preference names the root of one of the
-       replicas for Unison to synchronize. Exactly two roots are
-       needed, so normal modes of usage are either to give two values
-       for root in the profile, or to give no values in the profile
-       and provide two on the command line. Details of the syntax of
-       roots can be found in the section "Roots" .
-       The two roots can be given in either order; Unison will sort
-       them into a canonical order before doing anything else. It also
-       tries to `canonize' the machine names and paths that appear in
-       the roots, so that, if Unison is invoked later with a slightly
-       different name for the same root, it will be able to locate the
-       correct archives.
-rootalias xxx
-       When calculating the name of the archive files for a given pair
-       of roots, Unison replaces any roots matching the left\-hand side
-       of any rootalias rule by the corresponding right\-hand side.
-rshargs xxx
-       The string value of this preference will be passed as
-       additional arguments (besides the host name and the name of the
-       Unison executable on the remote system) to the rsh command used
-       to invoke the remote server.
-rshcmd xxx
-       This preference can be used to explicitly set the name of the
-       rsh executable (e.g., giving a full path name), if necessary.
-rsrc xxx
-       When set to true, this flag causes Unison to synchronize
-       resource forks and HFS meta\-data. On filesystems that do not
-       natively support resource forks, this data is stored in
-       Carbon\-compatible ._ AppleDouble files. When the flag is set to
-       false, Unison will not synchronize these data. Ordinarily, the
-       flag is set to default, and these data are automatically
-       synchronized if either host is running OSX. In rare
-       circumstances it is useful to set the flag manually.
-rsync
-       Unison uses the 'rsync algorithm' for 'diffs\-only' transfer of
-       updates to large files. Setting this flag to false makes Unison
-       use whole\-file transfers instead. Under normal circumstances,
-       there is no reason to do this, but if you are having trouble
-       with repeated 'rsync failure' errors, setting it to false
-       should permit you to synchronize the offending files.
-selftest
-       Run internal tests and exit. This option is mostly for
-       developers and must be used carefully: in particular, it will
-       delete the contents of both roots, so that it can install its
-       own files for testing. This flag only makes sense on the
-       command line. When it is provided, no preference file is read:
-       all preferences must be specified on thecommand line. Also,
-       since the self\-test procedure involves overwriting the roots
-       and backup directory, the names of the roots and of the
-       backupdir preference must include the string "test" or else the
-       tests will be aborted. (If these are not given on the command
-       line, dummy subdirectories in the current directory will be
-       created automatically.)
-servercmd xxx
-       This preference can be used to explicitly set the name of the
-       Unison executable on the remote server (e.g., giving a full
-       path name), if necessary.
-showarchive
-       When this preference is set, Unison will print out the 'true
-       names'of the roots, in the same form as is expected by the
-       rootaliaspreference.
-silent
-       When this preference is set to true, the textual user interface
-       will print nothing at all, except in the case of errors.
-       Setting silent to true automatically sets the batch preference
-       to true.
-sortbysize
-       When this flag is set, the user interface will list changed
-       files by size (smallest first) rather than by name. This is
-       useful, for example, for synchronizing over slow links, since
-       it puts very large files at the end of the list where they will
-       not prevent smaller files from being transferred quickly.
-       This preference (as well as the other sorting flags, but not
-       the sorting preferences that require patterns as arguments) can
-       be set interactively and temporarily using the 'Sort' menu in
-       the graphical user interface.
-sortfirst xxx
-       Each argument to sortfirst is a pattern pathspec, which
-       describes a set of paths. Files matching any of these patterns
-       will be listed first in the user interface. The syntax of
-       pathspec is described in the section "Path Specification" .
-sortlast xxx
-       Similar to sortfirst, except that files matching one of these
-       patterns will be listed at the very end.
-sortnewfirst
-       When this flag is set, the user interface will list newly
-       created files before all others. This is useful, for example,
-       for checking that newly created files are not `junk', i.e.,
-       ones that should be ignored or deleted rather than
-       synchronized.
-sshargs xxx
-       The string value of this preference will be passed as
-       additional arguments (besides the host name and the name of the
-       Unison executable on the remote system) to the ssh command used
-       to invoke the remote server.
-sshcmd xxx
-       This preference can be used to explicitly set the name of the
-       ssh executable (e.g., giving a full path name), if necessary.
-sshversion xxx
-       This preference can be used to control which version of ssh
-       should be used to connect to the server. Legal values are 1 and
-       2, which will cause unison to try to use ssh1 orssh2 instead of
-       just ssh to invoke ssh. The default value is empty, which will
-       make unison use whatever version of ssh is installed as the
-       default `ssh' command.
-terse
-       When this preference is set to true, the user interface will
-       not print status messages.
-testserver
-       Setting this flag on the command line causes Unison to attempt
-       to connect to the remote server and, if successful, print a
-       message and immediately exit. Useful for debugging installation
-       problems. Should not be set in preference files.
-times
-       When this flag is set to true, file modification times (but not
-       directory modtimes) are propagated.
-ui xxx
-       This preference selects either the graphical or the textual
-       user interface. Legal values are graphic or text.
-       Because this option is processed specially during Unison's
-       start\-up sequence, it can only be used on the command line. In
-       preference files it has no effect.
-       If the Unison executable was compiled with only a textual
-       interface, this option has no effect. (The pre\-compiled
-       binaries are all compiled with both interfaces available.)
-version
-       Print the current version number and exit. (This option only
-       makes sense on the command line.)
-xferbycopying
-       When this preference is set, Unison will try to avoid
-       transferring file contents across the network by recognizing
-       when a file with the required contents already exists in the
-       target replica. This usually allows file moves to be propagated
-       very quickly. The default value istrue.
-.fi
-.sp
-Profiles
-.sp
-.sp
-A profile is a text file that specifies permanent settings for roots,
-paths, ignore patterns, and other preferences, so that they do not
-need to be typed at the command line every time Unison is run.
-Profiles should reside in the .unison directory on the client machine.
-If Unison is started with just one argument name on the command line,
-it looks for a profile called name.prf in the .unison directory. If it
-is started with no arguments, it scans the .unison directory for files
-whose names end in .prf and offers a menu (provided that the Unison
-executable is compiled with the graphical user interface). If a file
-named default.prf is found, its settings will be offered as the
-default choices.
-.sp
-To set the value of a preference p permanently, add to the appropriate
-profile a line of the form
-.nf
-     p = true
-.fi
-.sp
-for a boolean flag or
-.nf
-     p = <value>
-.fi
-.sp
-for a preference of any other type.
-.sp
-Whitespaces around p and xxx are ignored. A profile may also include
-blank lines and lines beginning with #; both are ignored.
-.sp
-When Unison starts, it first reads the profile and then the command
-line, so command\-line options will override settings from the profile.
-.sp
-Profiles may also include lines of the form include name, which will
-cause the file name (or name.prf, if name does not exist in the
-.unison directory) to be read at the point, and included as if its
-contents, instead of the include line, was part of the profile.
-Include lines allows settings common to several profiles to be stored
-in one place.
-.sp
-A profile may include a preference `label = desc' to provide a
-description of the options selected in this profile. The string desc
-is listed along with the profile name in the profile selection dialog,
-and displayed in the top\-right corner of the main Unison window in the
-graphical user interface.
-.sp
-The graphical user\-interface also supports one\-key shortcuts for
-commonly used profiles. If a profile contains a preference of the form
-`key = n', where n is a single digit, then pressing this digit key
-will cause Unison to immediately switch to this profile and begin
-synchronization again from scratch. In this case, all actions that
-have been selected for a set of changes currently being displayed will
-be discarded.
-.sp
-Sample Profiles
-.sp
-A Minimal Profile
-.sp
-.sp
-Here is a very minimal profile file, such as might be found in
- .unison/default.prf:
-.nf
- # Roots of the synchronization
- root = /home/bcpierce
- root = ssh://saul//home/bcpierce
-.fi
-.sp
-.nf
-# Paths to synchronize
-path = current
-path = common
-path = .netscape/bookmarks.html
-.fi
-.sp
-A Basic Profile
-.sp
-.sp
-Here is a more sophisticated profile, illustrating some other useful
-features.
-.nf
- # Roots of the synchronization
- root = /home/bcpierce
- root = ssh://saul//home/bcpierce
-.fi
-.sp
-.nf
-# Paths to synchronize
-path = current
-path = common
-path = .netscape/bookmarks.html
-.fi
-.sp
-.nf
-# Some regexps specifying names and paths to ignore
-ignore = Name temp.*
-ignore = Name *~
-ignore = Name .*~
-ignore = Path */pilot/backup/Archive_*
-ignore = Name *.o
-ignore = Name *.tmp
-.fi
-.sp
-.nf
-# Window height
-height = 37
-.fi
-.sp
-.nf
-# Keep a backup copy of every file in a central location
-backuplocation = central
-backupdir = /home/bcpierce/backups
-backup = Name *
-backupprefix = $VERSION.
-backupsuffix =
-.fi
-.sp
-.nf
-# Use this command for displaying diffs
-diff = diff \-y \-W 79 \-\-suppress\-common\-lines
-.fi
-.sp
-.nf
-# Log actions to the terminal
-log = true
-.fi
-A Power\-User Profile
-.sp
-.sp
-When Unison is used with large replicas, it is often convenient to be
-able to synchronize just a part of the replicas on a given run (this
-saves the time of detecting updates in the other parts). This can be
-accomplished by splitting up the profile into several parts \-\- a
-common part containing most of the preference settings, plus one
-"top\-level" file for each set of paths that need to be synchronized.
-(The include mechanism can also be used to allow the same set of
-preference settings to be used with different roots.)
-.sp
-The collection of profiles implementing this scheme might look as
-follows. The file default.prf is empty except for an include
-directive:
-.nf
- # Include the contents of the file common
- include common
-.fi
-.sp
-Note that the name of the common file is common, not common.prf; this
-prevents Unison from offering common as one of the list of profiles in
-the opening dialog (in the graphical UI).
-.sp
-The file common contains the real preferences:
-.nf
- # Roots of the synchronization
- root = /home/bcpierce
- root = ssh://saul//home/bcpierce
-.fi
-.sp
-.nf
-# (... other preferences ...)
-.fi
-.sp
-.nf
-# If any new preferences are added by Unison (e.g. 'ignore'
-# preferences added via the graphical UI), then store them in the
-# file 'common' rathen than in the top\-level preference file
-addprefsto = common
-.fi
-.sp
-.nf
-# Names and paths to ignore:
-ignore = Name temp.*
-ignore = Name *~
-ignore = Name .*~
-ignore = Path */pilot/backup/Archive_*
-ignore = Name *.o
-ignore = Name *.tmp
-.fi
-.sp
-Note that there are no path preferences in common. This means that,
-when you invoke Unison with the default profile (e.g., by typing
-\'unison default' or just 'unison' on the command line), the whole
-replica is synchronized. (If you do not want to synchronize the
-whole replicas, then default.prf would instead include settings for
-all the paths that are usually synchronized.)
-.sp
-To synchronize just part of the replicas, Unison is invoked with an
-alternate preference file\-\-e.g., doing 'unison workingset', where the
-preference file workingset.prf contains
-.nf
- path = current/papers
- path = Mail/inbox
- path = Mail/drafts
- include common
-.fi
-.sp
-causes Unison to synchronize just the listed subdirectories.
-.sp
-The key preference can be used in combination with the graphical UI to
-quickly switch between different sets of paths. For example, if the
-file mail.prf contains
-.nf
- path = Mail
- batch = true
- key = 2
- include common
-.fi
-.sp
-then pressing 2 will cause Unison to look for updates in the Mail
-subdirectory and (because the batch flag is set) immediately propagate
-any that it finds.
-.sp
-Keeping Backups
-.sp
-.sp
-When Unison overwrites a file or directory by propagating a new
-version from the other replica, it can keep the old version around as
-a backup. There are several preferences that control precisely where
-these backups are stored and how they are named.
-.sp
-To enable backups, you must give one or more backup preferences. Each
-of these has the form
-.nf
- backup = <pathspec>
-.fi
-.sp
-where <pathspec> has the same form as for the ignore preference. For
-example,
-.nf
- backup = Name *
-.fi
-.sp
-causes Unison to keep backups of all files and directories. The
-backupnot preference can be used to give a few exceptions: it
-specifies which files and directories should not be backed up, even if
-they match the backup pathspec.
-.sp
-It is important to note that the pathspec is matched against the path
-that is being updated by Unison, not its descendants. For example, if
-you set backup = Name *.txt and then delete a whole directory named
-foo containing some text files, these files will not be backed up
-because Unison will just check that foo does not match *.txt.
-Similarly, if the directory itself happened to be called foo.txt, then
-the whole directory and all the files in it will be backed up,
-regardless of their names.
-.sp
-Backup files can be stored either centrally or locally. This behavior
-is controlled by the preference backuplocation, whose value must be
-either central or local. (The default is central.)
-.sp
-When backups are stored locally, they are kept in the same directory
-as the original.
-.sp
-When backups are stored centrally, the directory used to hold them is
-controlled by the preference backupdir and the environment variable
-UNISONBACKUPDIR. (The environment variable is checked first.) If
-neither of these are set, then the directory .unison/backup in the
-your home directory is used.
-.sp
-The preference maxbackups controls how many previous versions of each
-file are kept (including the current version).
-.sp
-By default, backup files are named .bak.VERSION.FILENAME, where
-FILENAME is the original filename and VERSION is the backup number (1
-for the most recent, 2 for the next most recent, etc.). This can be
-changed by setting the preferences backupprefix and/or backupsuffix.
-If desired, backupprefix may include a directory prefix; this can be
-used with backuplocation = local to put all backup files for each
-directory into a single subdirectory. For example, setting
-.nf
- backuplocation = local
- backupprefix = .unison/$VERSION.
- backupsuffix =
-.fi
-.sp
-will put all backups in a local subdirectory named .unison. Also, note
-that the string $VERSION in either backupprefix or backupsuffix (it
-must appear in one or the other) is replaced by the version number.
-This can be used, for example, to ensure that backup files retain the
-same extension as the originals.
-.sp
-For backward compatibility, the backups preference is also supported.
-It simply means backup = Name * and backuplocation = local.
-.sp
-Merging Conflicting Versions
-.sp
-.sp
-Unison can invoke external programs to merge conflicting versions of a
-file. The preference merge controls this process.
-.sp
-The merge preference may be given once or several times in a
-preference file (it can also be given on the command line, of course,
-but this tends to be awkward because of the spaces and special
-characters involved). Each instance of the preference looks like this:
-.nf
- merge = <PATHSPEC> \-> <MERGECMD>
-.fi
-.sp
-The <PATHSPEC> here has exactly the same format as for the ignore
-preference (see the section "Path specification" ). For example, using
-"Name *.txt" as the <PATHSPEC> tells Unison that this command should
-be used whenever a file with extension .txt needs to be merged.
-.sp
-Many external merging programs require as inputs not just the two
-files that need to be merged, but also a file containing the last
-synchronized version. You can ask Unison to keep a copy of the last
-synchronized version for some files using the backupcurrent
-preference. This preference is used in exactly the same way as backup
-and its meaning is similar, except that it causes backups to be kept
-of the current contents of each file after it has been synchronized by
-Unison, rather than the previous contents that Unison overwrote. These
-backups are kept on both replicas in the same place as ordinary backup
-files\-\-i.e. according to the backuplocation and backupdir preferences.
-They are named like the original files if backupslocation is set to
-\'central' and otherwise, Unison uses the backupprefix and backupsuffix
-preferences and assumes a version number 000 for these backups.
-.sp
-The <MERGECMD> part of the preference specifies what external command
-should be invoked to merge files at paths matching the <PATHSPEC>.
-Within this string, several special substrings are recognized; these
-will be substituted with appropriate values before invoking a
-sub\-shell to execute the command.
-.nf
-  * CURRENT1 is replaced by the name of (a temporary copy of) the
-    local variant of the file.
-  * CURRENT2 is replaced by the name of a temporary file, into which
-    the contents of the remote variant of the file have been
-    transferred by Unison prior to performing the merge.
-  * CURRENTARCH is replaced by the name of the backed up copy of the
-    original version of the file (i.e., the file saved by Unison if
-    the current filename matches the path specifications for the
-    backupcurrent preference, as explained above), if one exists. If
-    no archive exists and CURRENTARCH appears in the merge command,
-    then an error is signalled.
-  * CURRENTARCHOPT is replaced by the name of the backed up copy of
-    the original version of the file (i.e., its state at the end of
-    the last successful run of Unison), if one exists, or the empty
-    string if no archive exists.
-  * NEW is replaced by the name of a temporary file that Unison
-    expects to be written by the merge program when it finishes,
-    giving the desired new contents of the file.
-  * PATH is replaced by the path (relative to the roots of the
-    replicas) of the file being merged.
-  * NEW1 and NEW2 are replaced by the names of temporary files that
-    Unison expects to be written by the merge program when it is only
-    able to partially merge the originals; in this case, NEW1 will be
-    written back to the local replica and NEW2 to the remote replica;
-    NEWARCH, if present, will be used as the "last common state" of
-    the replicas. (These three options are provided for later
-    compatibility with the Harmony data synchronizer.)
-.fi
-.sp
-To accomodate the wide variety of programs that users might want to
-use for merging, Unison checks for several possible situations when
-the merge program exits:
-.nf
-  * If the merge program exits with a non\-zero status, then merge is
-    considered to have failed and the replicas are not changed.
-  * If the file NEW has been created, it is written back to both
-    replicas (and stored in the backup directory). Similarly, if just
-    the file NEW1 has been created, it is written back to both
-    replicas.
-  * If neither NEW nor NEW1 have been created, then Unison examines
-    the temporary files CURRENT1 and CURRENT2 that were given as
-    inputs to the merge program. If either has been changed (or both
-    have been changed in identical ways), then its new contents are
-    written back to both replicas. If either CURRENT1 or CURRENT2 has
-    been deleted, then the contents of the other are written back to
-    both replicas.
-  * If the files NEW1, NEW2, and NEWARCH have all been created, they
-    are written back to the local replica, remote replica, and backup
-    directory, respectively. If the files NEW1, NEW2 have been
-    created, but NEWARCH has not, then these files are written back to
-    the local replica and remote replica, respectively. Also, if NEW1
-    and NEW2 have identical contents, then the same contents are
-    stored as a backup (if the backupcurrent preference is set for
-    this path) to reflect the fact that the path is currently in sync.
-  * If NEW1 and NEW2 (resp. CURRENT1 and CURRENT2) are created (resp.
-    overwritten) with different contents but the merge command did not
-    fail (i.e., it exited with status code 0), then copy NEW1
-    (resp. CURRENT1) to the other replica and to the archive.
-    This behavior is a design choice made to handle the case where a
-    merge command only synchronizes some specific contents between two
-    files, skipping some irrelevant information (order between
-    entries, for instance). It is assumed that, if the merge command exits
-    normally, then the two resulting files are "as good as equal."
-    (The reason of copying one on top of the other is to avoid Unison
-    detecting that the files are unequal the next time it is run and
-    trying again to merge them when, in fact, the merge program has
-    already made them as similar as it is able to.)
-.fi
-.sp
-If the confirmmerge preference is set and Unison is not run in batch
-mode, then Unison will always ask for confirmation before actually
-committing the results of the merge to the replicas.
-.sp
-A large number of external merging programs are available. For
-example, on Unix systems setting the merge preference to
-.nf
- merge = Name *.txt \-> diff3 CURRENT1 CURRENTARCH CURRENT2 \-m > NEW
-.fi
-.sp
-will tell Unison to use the external diff3 program for merging.
-Alternatively, users of emacs may find the following settings
-convenient:
-.nf
- merge = Name *.txt \-> emacs \-q \-\-eval '(ediff\-merge\-files\-with\-ancestor
-                          "CURRENT1" "CURRENT2" "CURRENTARCH" nil "NEW")'
-.fi
-.sp
-(These commands are displayed here on two lines to avoid running off
-the edge of the page. In your preference file, each command should be
-written on a single line.)
-.sp
-Users running emacs under windows may find something like this useful:
-.nf
-merge = Name * \-> C:\\Progra~1\\Emacs\\emacs\\bin\\emacs.exe \-q \-\-eval
-                         "(ediff\-files """CURRENT1""" """CURRENT2""")"
-.fi
-.sp
-Users running Mac OS X (you may need the Developer Tools installed to
-get the opendiff utility) may prefer
-.nf
-    merge = Name *.txt \-> opendiff CURRENT1 CURRENT2 \-ancestor CURRENTARCH \-mer
-ge NEW
-.fi
-.sp
-Here is a slightly more involved hack. The opendiff program can
-operate either with or without an archive file. A merge command of
-this form
-.nf
-    merge = Name *.txt \->
-              if [ CURRENTARCHOPTx = x ];
-              then opendiff CURRENT1 CURRENT2 \-merge NEW;
-              else opendiff CURRENT1 CURRENT2 \-ancestor CURRENTARCHOPT \-merge N
-EW;
-              fi
-.fi
-.sp
-(still all on one line in the preference file!) will test whether an
-archive file exists and use the appropriate variant of the arguments
-to opendiff.
-.sp
-Ordinarily, external merge programs are only invoked when Unison is
-not running in batch mode. To specify an external merge program that
-should be used no matter the setting of the batch flag, use the
-mergebatch preference instead of merge.
-.sp
-Post your suggestions for other useful values of the merge
-preference to the unison\-users mailing list\-\- 
-Several examples are shown here.
-.sp
-The User Interface
-.sp
-.sp
-Both the textual and the graphical user interfaces are intended to be
-mostly self\-explanatory. Here are just a few tricks:
-.nf
-  * By default, when running on Unix the textual user interface will
-    try to put the terminal into the "raw mode" so that it reads the
-    input a character at a time rather than a line at a time. (This
-    means you can type just the single keystroke ">" to tell Unison to
-    propagate a file from left to right, rather than "> Enter.")
-    There are some situations, though, where this will not work \-\- for
-    example, when Unison is running in a shell window inside Emacs.
-    Setting the dumbtty preference will force Unison to leave the
-    terminal alone and process input a line at a time.
-.fi
-.sp
-Exit code
-.sp
-.sp
-When running in the textual mode, Unison returns an exit status, which
-describes whether, and at which level, the synchronization was
-successful. The exit status could be useful when Unison is invoked
-from a script. Currently, there are four possible values for the exit
-status:
-.nf
-  * 0: successful synchronization; everything is up\-to\-date now.
-  * 1: some files were skipped, but all file transfers were
-    successful.
-  * 2: non\-fatal failures occurred during file transfer.
-  * 3: a fatal error occurred, or the execution was interrupted.
-.fi
-.sp
-The graphical interface does not return any useful information through
-the exit status.
-.sp
-Path specification
-.sp
-.sp
-Several Unison preferences (e.g., ignore/ignorenot, follow,
-sortfirst/sortlast, backup, merge, etc.) specify individual paths or
-sets of paths. These preferences share a common syntax based on
-regular\-expressions. Each preference is associated with a list of path
-patterns; the paths specified are those that match any one of the path
-pattern.
-.nf
-  * Pattern preferences can be given on the command line, or, more
-    often, stored in profiles, using the same syntax as other
-    preferences. For example, a profile line of the form
-          ignore = pattern
-    adds pattern to the list of patterns to be ignored.
-  * Each pattern can have one of three forms. The most general form is
-    a Posix extended regular expression introduced by the keyword
-    Regex. (The collating sequences and character classes of full
-    Posix regexps are not currently supported).
-              Regex regexp
-    For convenience, two other styles of pattern are also recognized:
-              Name name
-    matches any path in which the last component matches name, while
-              Path path
-    matches exactly the path path. The name and path arguments of the
-    latter forms of patterns are not regular expressions. Instead,
-    standard "globbing" conventions can be used in name and path:
-       + a * matches any sequence of characters not including / (and
-         not beginning with ., when used at the beginning of a name)
-       + a ? matches any single character except / (and leading .)
-       + [xyz] matches any character from the set {x, y, z }
-       + {a,bb,ccc} matches any one of a, bb, or ccc.
-  * The path separator in path patterns is always the forward\-slash
-    character "/" \-\- even when the client or server is running under
-    Windows, where the normal separator character is a backslash. This
-    makes it possible to use the same set of path patterns for both
-    Unix and Windows file systems.
-.fi
-.sp
-Some examples of path patterns appear in the section "Ignoring Paths."
-.sp
-Ignoring Paths
-.sp
-.sp
-Most users of Unison will find that their replicas contain lots of
-files that they do not ever want to synchronize \-\- temporary files,
-very large files, old stuff, architecture\-specific binaries, etc. They
-can instruct Unison to ignore these paths using patterns introduced in
-the section "Path Patterns" .
-.sp
-For example, the following pattern will make Unison ignore any path
-containing the name CVS or a name ending in .cmo:
-.nf
-          ignore = Name {CVS,*.cmo}
-.fi
-.sp
-The next pattern makes Unison ignore the path a/b:
-.nf
-          ignore = Path a/b
-.fi
-.sp
-Path patterns do not skip filesnames beginning with . (as Name
-patterns do). For example,
-.nf
-          ignore = Path */tmp
-.fi
-.sp
-will include .foo/tmp in the set of ignore directories, as it is a
-path, not a name, that is ignored.
-.sp
-The following pattern makes Unison ignore any path beginning with a/b
-and ending with a name ending by .ml.
-.nf
-          ignore = Regex a/b/.*\\.ml
-.fi
-.sp
-Note that regular expression patterns are "anchored": they must match
-the whole path, not just a substring of the path.
-.sp
-Here are a few extra points regarding the ignore preference.
-.nf
-  * If a directory is ignored, all its descendents will be too.
-  * The user interface provides some convenient commands for adding
-    new patterns to be ignored. To ignore a particular file, select it
-    and press "i". To ignore all files with the same extension, select
-    it and press "E" (with the shift key). To ignore all files with
-    the same name, no matter what directory they appear in, select it
-    and press "N". These new patterns become permanent: they are
-    immediately added to the current profile on disk.
-  * If you use the include directive to include a common collection of
-    preferences in several top\-level preference files, you will
-    probably also want to set the addprefsto preference to the name of
-    this file. This will cause any new ignore patterns that you add
-    from inside Unison to be appended to this file, instead of
-    whichever top\-level preference file you started Unison with.
-  * Ignore patterns can also be specified on the command line, if you
-    like (this is probably not very useful), using an option like
-    \-ignore 'Name temp.txt'.
-  * Be careful about renaming directories containing ignored files.
-    Because Unison understands the rename as a delete plus a create,
-    any ignored files in the directory will be lost (since they are
-    invisible to Unison and therefore they do not get recreated in the
-    new version of the directory).
-  * There is also an ignorenot preference, which specifies a set of
-    patterns for paths that should not be ignored, even if they match
-    an ignore pattern. However, the interaction of these two sets of
-    patterns can be a little tricky. Here is exactly how it works:
-       + Unison starts detecting updates from the root of the
-         replicas\-\-i.e., from the empty path. If the empty path
-         matches an ignore pattern and does not match an ignorenot
-         pattern, then the whole replica will be ignored. (For this
-         reason, it is not a good idea to include Name * as an ignore
-         pattern. If you want to ignore everything except a certain
-         set of files, use Name ?*.)
-       + If the root is a directory, Unison continues looking for
-         updates in all the immediate children of the root. Again, if
-         the name of some child matches an ignore pattern and does not
-         match an ignorenot pattern, then this whole path including
-         everything below it will be ignored.
-       + If any of the non\-ignored children are directories, then the
-         process continues recursively.
-.fi
-.sp
-Symbolic Links
-.sp
-.sp
-Ordinarily, Unison treats symbolic links in Unix replicas as "opaque":
-it considers the contents of the link to be just the string specifying
-where the link points, and it will propagate changes in this string to
-the other replica.
-.sp
-It is sometimes useful to treat a symbolic link "transparently,"
-acting as though whatever it points to were physically in the replica
-at the point where the symbolic link appears. To tell Unison to treat
-a link in this manner, add a line of the form
-.nf
-          follow = pathspec
-.fi
-.sp
-to the profile, where pathspec is a path pattern as described in the
-section "Path Patterns" .
-.sp
-Windows file systems do not support symbolic links; Unison will refuse
-to propagate an opaque symbolic link from Unix to Windows and flag the
-path as erroneous. When a Unix replica is to be synchronized with a
-Windows system, all symbolic links should match either an ignore
-pattern or a follow pattern.
-.sp
-Permissions
-.sp
-.sp
-Synchronizing the permission bits of files is slightly tricky when two
-different filesytems are involved (e.g., when synchronizing a Windows
-client and a Unix server). A detailed explanation is as below:
-.nf
-  * When the permission bits of an existing file or directory are
-    changed, the values of those bits that make sense on both
-    operating systems will be propagated to the other replica. The
-    other bits will not be changed.
-  * When a newly created file is propagated to a remote replica, the
-    permission bits that make sense in both operating systems are also
-    propagated. The values of the other bits are set to default values
-    (they are taken from the current umask, if the receiving host is a
-    Unix system).
-  * For security reasons, the Unix setuid and setgid bits are not
-    propagated.
-  * The Unix owner and group ids are not propagated. (What would this
-    mean, in general?) All files are created with the owner and group
-    of the server process.
-.fi
-Cross\-Platform Synchronization
-.sp
-.sp
-If you use Unison to synchronize files between Windows and Unix
-systems, there are a few special issues to be aware of.
-.sp
-Case conflicts. In Unix, filenames are case sensitive: foo and FOO can
-refer to different files. In Windows, on the other hand, filenames are
-not case sensitive: foo and FOO can only refer to the same file. This
-means that a Unix foo and FOO cannot be synchronized onto a Windows
-system \-\- Windows would not allow two different files to have the "same"
-name. Unison detects this situation for you, and reports that it
-cannot synchronize the files.
-.sp
-You can deal with a case conflict in a couple of ways. If you need to
-have both files on the Windows system, your only choice is to rename
-one of the Unix files to avoid the case conflict, and re\-synchronize.
-If you do not need the files on the Windows system, you can simply
-disregard Unison's warning message, and go ahead with the
-synchronization; Unison would not touch those files. If you do not want to
-see the warning on each synchronization, you can tell Unison to ignore
-the files (see the section "Ignore" ).
-.sp
-Illegal filenames. Unix allows some filenames that are illegal in
-Windows. For example, colons (`:') are not allowed in Windows
-filenames, but they are legal in Unix filenames. This means that a
-Unix file foo:bar can not be synchronized to a Windows system. As with
-case conflicts, Unison detects this situation for you, and you have
-the same options: you can either rename the Unix file and
-re\-synchronize, or you can ignore it.
-.sp
-Slow Links
-.sp
-.sp
-Unison is built to run well even over relatively slow links such as
-modems and DSL connections.
-.sp
-Unison uses the "rsync protocol" designed by Andrew Tridgell and Paul
-Mackerras to greatly speed up transfers of large files in which only
-small changes have been made. More information about the rsync
-protocol can be found at the rsync web site
-(http://samba.anu.edu.au/rsync/).
-.sp
-If you are using Unison with ssh, you may get some speed improvement
-by enabling ssh's compression feature. Do this by adding the option
-"\-rshargs \-C" to the command line or "rshargs = \-C" to your profile.
-.sp
-Fast Update Detection
-.sp
-.sp
-If your replicas are large and at least one of them is on a Windows
-system, you may find that Unison's default method for detecting
-changes which involves scanning the full contents of every file on
-every sync\-\-the only completely safe way to do it under Windows is
-too slow. Unison provides a preference fastcheck that, when set to
-true, causes it to use file creation times as 'pseudo inode numbers'
-when scanning replicas for updates, instead of reading the full
-contents of every file.
-.sp
-When fastcheck is set to no, Unison will perform slow
-checking\-\-re\-scanning the contents of each file on each
-synchronization\-\-on all replicas. When fastcheck is set to default
-(which, naturally, is the default), Unison will use fast checks on
-Unix replicas and slow checks on Windows replicas.
-.sp
-This strategy may cause Unison to miss propagating an update if the
-modification time and length of the file are both unchanged by the
-update. However, Unison will never overwrite such an update with a
-change from the other replica, since it always does a safe check for
-updates just before propagating a change. Thus, it is reasonable to
-use this switch most of the time and occasionally run Unison once with
-fastcheck set to no, if you are worried that Unison may have
-overlooked an update.
-.sp
-Fastcheck is always automatically disabled for files with extension
-.xls or .mpp, to prevent Unison from being confused by the process
-of updating files without
-changing their modification times. This happens in the case of an Excel application.
-.sp
-Mount Points and Removable Media
-.sp
-.sp
-Using Unison removable media such as USB drives can be dangerous
-unless you are careful. If you synchronize a directory that is stored
-on removable media when the media is not present, it will look to
-Unison as though the whole directory has been deleted, and it will
-proceed to delete the directory from the other replica\-\-probably not
-what you want!
-.sp
-To prevent accidents, Unison provides a preference called mountpoint.
-Including a line like
-.nf
-          mountpoint = /mnt/foo
-.fi
-.sp
-in your preference file makes Unison to check whether there exists anything at /mnt/foo path
-on both replicas. This is usually done when it finishes
-detecting the updates. If it does not find anything, the Unison aborts to run.
--- a/components/unison/unison.license	Fri Jul 01 11:11:11 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,349 +0,0 @@
-Oracle elects to use only the GNU Lesser General Public License version
-2.1 (LGPL)/GNU General Public License version 2 (GPL) for any software
-where a choice of LGPL/GPL license versions are made available with the
-language indicating that LGPLv2.1/GPLv2 or any later version may be
-used, or where a choice of which version of the LGPL/GPL is applied is
-unspecified.  Unless specifically stated otherwise, where a choice
-exists between another license and either the GPL or the LGPL, Oracle
-chooses the other license.
-------------------------------------------------------------------------
-                    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
--- a/components/unison/unison.p5m	Fri Jul 01 11:11:11 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
-#
-
-<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
-
-set name=pkg.fmri value=pkg:/network/unison@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
-set name=pkg.summary value="unison - File synchronization tool"
-set name=info.classification value="org.opensolaris.category.2008:Applications/System Utilities"
-set name=info.upstream_url value=$(COMPONENT_PROJECT_URL)
-set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
-set name=opensolaris.arc_url \
-    value=http://arc.opensolaris.org/caselog/PSARC/2008/212
-set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-
-license unison.license license="GPLv2"
-
-dir path=usr
-dir path=usr/bin
-dir path=usr/share
-dir path=usr/share/man
-dir path=usr/share/man/man1
-file unison path=usr/bin/unison
-file unison.1 path=usr/share/man/man1/unison.1
-
-legacy pkg=SUNWunison \
-    desc="unison - File synchronization tool (2.27.57)" \
-    name="unison - File synchronization tool"
-