--- 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 (¶m->value, pspec->value_type);
-- g_value_set_variant (¶m->value, Field(Field(cell,0),1));
-+ mylocal_g_value_set_variant (¶m->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"
-