Add vcs-load-dirs project to thirdparty directory.
vcs-load-dirs project contains load-dir scripts for different version control sysystems including git, hg, darcs, bazaar.
More information about the project:
http://software.complete.org/software/wiki/vcs-load-dirs/
http://software.complete.org/static/vcs-load-dirs/doc//hg_load_dirs.1.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/COPYING Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,342 @@
+
+ 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) <year> <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) year 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.
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/baz_load_dirs Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+# Copyright (C) 2005-2007 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+from vcs_support import init
+init.run("baz")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/darcs_load_dirs Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+
+### REMEMBER TO UPDATE VERSION IN vcs_support/init.py
+
+# Copyright (C) 2003-2007 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+
+from vcs_support import init
+
+init.run("darcs")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/baz-load-dirs.install Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,2 @@
+debian/tmp/usr/bin/baz_load_dirs usr/bin
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/baz-load-dirs.manpages Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,1 @@
+docs/baz_load_dirs.1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/changelog Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,315 @@
+vcs-load-dirs (1.1.6) unstable; urgency=low
+
+ * Added Vcs-* and Homepage control lines.
+
+ -- John Goerzen <jgoerzen@complete.org> Sat, 01 Mar 2008 20:49:13 -0600
+
+vcs-load-dirs (1.1.5) unstable; urgency=low
+
+ * Better git rm handling. Patch from agx@sigxcpu.org.
+ Closes: #417307.
+ * Convert changelog to UTF-8. Closes: #453970. (And the merged
+ bugs from the other binary debs generated from this package.)
+
+ -- John Goerzen <jgoerzen@complete.org> Sun, 10 Feb 2008 07:52:54 -0600
+
+vcs-load-dirs (1.1.4) unstable; urgency=low
+
+ * Better documented -f
+ * Put Mercurial log where it won't get accidentally checked in
+ * Unify logfile generation across VCSs
+
+ -- John Goerzen <jgoerzen@complete.org> Sat, 3 Mar 2007 08:12:28 -0600
+
+vcs-load-dirs (1.1.3) unstable; urgency=low
+
+ * -f now suppresses the interactive interface; it isn't necessary
+ in that mode.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 28 Feb 2007 06:07:56 -0600
+
+vcs-load-dirs (1.1.2) unstable; urgency=low
+
+ * Can now import directly from tar.gz, tar.bz2, and zip archives.
+ Closes: #235240.
+ * Guido's patch for git summary was already applied. Closes: #403505.
+ * Fixed bug with Mercurial renames.
+ * New option -f to request no changes other than commits to the VCS.
+ * Documented -n and -f in the manpages.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 28 Feb 2007 05:32:53 -0600
+
+vcs-load-dirs (1.1.1) unstable; urgency=low
+
+ * Fixed Mercurial log summary recording.
+ * Noted program's new homepage.
+
+ -- John Goerzen <jgoerzen@complete.org> Tue, 27 Feb 2007 03:04:54 -0600
+
+vcs-load-dirs (1.1.0) unstable; urgency=low
+
+ * New version.
+ * Source renamed to vcs-load-dirs.
+
+ -- John Goerzen <jgoerzen@complete.org> Mon, 26 Feb 2007 05:06:12 -0600
+
+tla-load-dirs (1.0.35) unstable; urgency=low
+
+ * Merge and ACK NMU 1.0.33.1. Closes: #395128.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 22 Nov 2006 05:07:41 -0600
+
+tla-load-dirs (1.0.34) unstable; urgency=high
+
+ * Fix darcs support, which one of the earlier git patches broke.
+
+ -- John Goerzen <jgoerzen@complete.org> Fri, 17 Nov 2006 06:16:14 -0600
+
+tla-load-dirs (1.0.33.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Make sure git-load-dirs actually gets installed (Closes: #395128)
+
+ -- Guido Guenther <agx@sigxcpu.org> Thu, 9 Nov 2006 09:48:02 +0100
+
+tla-load-dirs (1.0.33) unstable; urgency=low
+
+ * Added support for git, thanks to a patch from Guido Guenther.
+ Closes: #387139.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 18 Oct 2006 04:00:47 -0500
+
+tla-load-dirs (1.0.32) unstable; urgency=low
+
+ * Now build baz-load-dirs again, since bazaar is no longer broken.
+ Closes: #390458.
+
+ -- John Goerzen <jgoerzen@complete.org> Mon, 9 Oct 2006 07:02:03 -0500
+
+tla-load-dirs (1.0.31) unstable; urgency=high
+
+ * Update deps on load-dirs-common. Closes: #385644.
+ * Update for new Python policy. Closes: #380975.
+ * No longer build baz-load-dirs for Debian. bazaar is not migrating
+ into testing, and is preventing this package from entering.
+ * Update standards-version to 3.7.2.
+
+ -- John Goerzen <jgoerzen@complete.org> Mon, 4 Sep 2006 09:06:41 -0500
+
+tla-load-dirs (1.0.30) unstable; urgency=low
+
+ * Apply patch from Gregory Colpart to fix a typo in svk support.
+ Closes: #382291.
+
+ -- John Goerzen <jgoerzen@complete.org> Thu, 10 Aug 2006 16:13:13 -0500
+
+tla-load-dirs (1.0.29) unstable; urgency=low
+
+ * Ack NMU. Closes: #360730.
+ * Do import instead of commit when the current tree-version has no logs.
+ Patch from Lionel Elie Mamane. Closes: #350234.
+
+ -- John Goerzen <jgoerzen@complete.org> Sat, 17 Jun 2006 11:21:19 -0500
+
+tla-load-dirs (1.0.28-0.1) unstable; urgency=high
+
+ * Non-maintainer upload.
+ * Add commas in dependency fields (Closes: #360730).
+
+ -- Luk Claes <luk@debian.org> Mon, 17 Apr 2006 11:12:32 +0200
+
+tla-load-dirs (1.0.28) unstable; urgency=low
+
+ * Applied patch from Teemu Ikonen to support baz. Closes: #322622.
+
+ -- John Goerzen <jgoerzen@complete.org> Tue, 6 Sep 2005 06:03:24 -0500
+
+tla-load-dirs (1.0.27) unstable; urgency=low
+
+ * Fixed docs for darcs_load_dirs and also fixed manpages to reflect
+ that upstream archive is now kept in darcs instead of tla.
+
+ -- John Goerzen <jgoerzen@complete.org> Thu, 1 Sep 2005 06:18:46 -0500
+
+tla-load-dirs (1.0.26) unstable; urgency=low
+
+ * Applied patch from Marc Dequènes to support new tla 1.3 command syntax.
+ Closes: #319505.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 24 Aug 2005 06:26:53 -0500
+
+tla-load-dirs (1.0.25) unstable; urgency=low
+
+ * Fixed bug where moving files into a new directory could fail on darcs.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 17 Aug 2005 05:26:27 -0500
+
+tla-load-dirs (1.0.24) unstable; urgency=low
+
+ * Now use darcs record -l instead of darcs add for adds.
+
+ -- John Goerzen <jgoerzen@complete.org> Tue, 21 Jun 2005 06:47:27 -0500
+
+tla-load-dirs (1.0.23) unstable; urgency=low
+
+ * Missed a change to tla_wc.py that resulted because of the changes in
+ 1.0.22. Thanks James Vega for the helpful bug report. Closes: #311582.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 1 Jun 2005 21:20:09 -0500
+
+tla-load-dirs (1.0.22) unstable; urgency=low
+
+ * Add --case-ok to darcs command line and sort filenames before adding.
+ Closes: #311041.
+
+ -- John Goerzen <jgoerzen@complete.org> Tue, 31 May 2005 06:00:45 -0500
+
+tla-load-dirs (1.0.21) unstable; urgency=low
+
+ * No longer run "darcs check".
+
+ -- John Goerzen <jgoerzen@complete.org> Sat, 14 May 2005 12:09:53 -0500
+
+tla-load-dirs (1.0.20) unstable; urgency=low
+
+ * Fixed rename problem caused by the fix in 1.0.19.
+
+ -- John Goerzen <jgoerzen@complete.org> Mon, 25 Apr 2005 06:09:22 -0500
+
+tla-load-dirs (1.0.19) unstable; urgency=low
+
+ * [darcs] Fixed moving a file to a directory whose parent didn't yet exist.
+ Thanks to Matt Krai for helpful debugging information. Closes: #293088.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 20 Apr 2005 22:04:15 -0500
+
+tla-load-dirs (1.0.18) unstable; urgency=low
+
+ * Fixed typos in control. Closes: #300420.
+
+ -- John Goerzen <jgoerzen@complete.org> Tue, 19 Apr 2005 23:56:29 -0500
+
+tla-load-dirs (1.0.17) unstable; urgency=low
+
+ * [darcs] No longer attempt to darcs remove files; darcs will detect
+ the deletion automatically.
+
+ -- John Goerzen <jgoerzen@complete.org> Mon, 18 Apr 2005 20:16:14 -0500
+
+tla-load-dirs (1.0.16) unstable; urgency=low
+
+ * Added patch from Alfred M. Szmidt to support symlinks.
+
+ -- John Goerzen <jgoerzen@complete.org> Tue, 1 Mar 2005 14:57:02 -0600
+
+tla-load-dirs (1.0.15) unstable; urgency=low
+
+ * Made load-dirs-common conflict with tla-load-dirs (<< 1.0.14).
+ Some files in earlier tla-load-dirs packages are now in
+ load-dirs-common. Closes: #278102.
+
+ -- John Goerzen <jgoerzen@complete.org> Sun, 24 Oct 2004 17:02:04 -0500
+
+tla-load-dirs (1.0.14) unstable; urgency=low
+
+ * Added darcs_load_dirs.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 13 Oct 2004 21:01:04 -0500
+
+tla-load-dirs (1.0.13) unstable; urgency=low
+
+ * Added python to build-deps. Closes: #259136.
+
+ -- John Goerzen <jgoerzen@complete.org> Tue, 13 Jul 2004 10:17:04 -0500
+
+tla-load-dirs (1.0.12) unstable; urgency=low
+
+ * Experimental: Let the tagging method be tagline.
+
+ -- John Goerzen <jgoerzen@complete.org> Thu, 26 Feb 2004 22:00:07 -0600
+
+tla-load-dirs (1.0.11) unstable; urgency=low
+
+ * Added "upstream" changelog (from tla), note it in debian/rules,
+ and build-dep on a version of debhelper that can support it.
+ * Fixed tla version detection to work with the new "candidate" versions
+ in Debian sid.
+
+ -- John Goerzen <jgoerzen@complete.org> Tue, 16 Dec 2003 16:16:46 -0600
+
+tla-load-dirs (1.0.10) unstable; urgency=low
+
+ * Added a manpage and description of the program's operation.
+ Closes: #214097.
+ * control s/Build-Depends/Build-Depends-Indep/
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 22 Oct 2003 16:55:19 -0500
+
+tla-load-dirs (1.0.9) unstable; urgency=low
+
+ * Fixed a typo in tla_wc.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 22 Oct 2003 13:52:37 -0500
+
+tla-load-dirs (1.0.8) unstable; urgency=low
+
+ * Now compatible with both 1.0 and the latest 1.1 snapshot.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 22 Oct 2003 13:27:54 -0500
+
+tla-load-dirs (1.0.7) unstable; urgency=low
+
+ * Various bugfixes.
+ * Added -s option to set the summary line.
+
+ -- John Goerzen <jgoerzen@complete.org> Fri, 5 Sep 2003 09:43:03 -0500
+
+tla-load-dirs (1.0.6) unstable; urgency=low
+
+ * Made the verbose stuff actually do something more verbose.
+
+ -- John Goerzen <jgoerzen@complete.org> Thu, 4 Sep 2003 09:36:06 -0500
+
+tla-load-dirs (1.0.5) unstable; urgency=low
+
+ * Slight logic error when adding multiple nested directories.
+ Now do the adds after the copyfrom().
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 3 Sep 2003 22:04:25 -0500
+
+tla-load-dirs (1.0.4) unstable; urgency=low
+
+ * Added better error checking of input.
+ * Added command to redraw screen.
+ * Many bugfixes.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 3 Sep 2003 15:09:18 -0500
+
+tla-load-dirs (1.0.3) unstable; urgency=low
+
+ * Now properly rm -rf's a directory that is removed.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 3 Sep 2003 14:32:39 -0500
+
+tla-load-dirs (1.0.2) unstable; urgency=low
+
+ * Fixed a small syntax error in tla_wc.py.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 3 Sep 2003 14:04:21 -0500
+
+tla-load-dirs (1.0.1) unstable; urgency=low
+
+ * New arg: --no-commit.
+ * Now strips off the path from the logged import directory.
+ * More aggressive clean target.
+ * Creates any directories necessary to move files into.
+ * Cleaned up output.
+
+ -- John Goerzen <jgoerzen@complete.org> Wed, 3 Sep 2003 11:43:12 -0500
+
+tla-load-dirs (1.0.0) unstable; urgency=low
+
+ * Initial Release. Closes: #208463.
+
+ -- John Goerzen <jgoerzen@complete.org> Tue, 2 Sep 2003 20:10:45 -0500
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/compat Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,1 @@
+4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/control Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,99 @@
+Source: vcs-load-dirs
+Section: devel
+Priority: optional
+Maintainer: John Goerzen <jgoerzen@complete.org>
+XS-Python-Version: current
+Build-Depends-Indep: debhelper (>= 5.0.37.2), gtk-doc-tools, sgml2x, docbook-utils, jade, python (>= 2.3), python-dev, python-central (>= 0.5)
+Standards-Version: 3.7.2
+Homepage: http://software.complete.org/vcs-load-dirs
+Vcs-Git: git://git.complete.org/vcs-load-dirs
+Vcs-Browser: http://git.complete.org/vcs-load-dirs
+
+Package: tla-load-dirs
+Architecture: all
+XB-Python-Version: ${python:Versions}
+Depends: load-dirs-common (= ${Source-Version}), tla, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Description: Import upstream archives into tla/arch
+ Tom Lord's arch/tla system is capable of importing upstream directories
+ into a tla archive for some archives. For situations where the upstream
+ renames or moves files and directories on a regular basis, version
+ information can be lost.
+ .
+ tla-load-dirs works with tla to import these things and preserve
+ changes. It works on a principle similar to Subversion's
+ svn_load_dirs.
+
+Package: darcs-load-dirs
+Architecture: all
+XB-Python-Version: ${python:Versions}
+Depends: load-dirs-common (= ${Source-Version}), darcs, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Description: Import upstream archives into darcs
+ Darcs works fine for importing new archives. However, for situations
+ where the upstream renames or moves files and directories on a regular
+ basis, version information can be lost.
+ .
+ darcs-load-dirs works with darcs to import these things and preserve
+ changes. It works on a principle similar to Subversion's
+ svn_load_dirs or my tla_load_dirs package for Arch.
+
+Package: hg-load-dirs
+Architecture: all
+XB-Python-Version: ${python:Versions}
+Depends: load-dirs-common (= ${Source-Version}), mercurial, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Description: Import upstream archives into darcs
+ Mercurial works fine for importing new archives. However, for situations
+ where the upstream renames or moves files and directories on a regular
+ basis, version information can be lost.
+ .
+ hg-load-dirs works with darcs to import these things and preserve
+ changes. It works on a principle similar to Subversion's
+ svn_load_dirs or my tla_load_dirs package for Arch.
+
+Package: baz-load-dirs
+Architecture: all
+XB-Python-Version: ${python:Versions}
+Depends: load-dirs-common (= ${Source-Version}), bazaar, ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Description: Import upstream archives into baz
+ Bazaar (baz) works fine for importing new archives. However, for situations
+ where the upstream renames or moves files and directories on a regular
+ basis, version information can be lost.
+ .
+ baz-load-dirs works with baz to import these things and preserve
+ changes. It works on a principle similar to Subversion's
+ svn_load_dirs or my tla_load_dirs package for tla.
+
+Package: svk-load-dirs
+Architecture: all
+XB-Python-Version: ${python:Versions}
+Depends: load-dirs-common (= ${Source-Version}), svk, ${shlibs:Depends} ${misc:Depends} ${python:Depends}
+Description: Import upstream archives into svk
+ Svk works fine for importing new archives. However, for situations
+ where the upstream renames or moves files and directories on a regular
+ basis, version information can be lost.
+ .
+ svk-load-dirs works with svk to import these things and preserve
+ changes. It works on a principle similar to Subversion's
+ svn_load_dirs or my tla_load_dirs package for tla.
+
+Package: git-load-dirs
+Architecture: all
+XB-Python-Version: ${python:Versions}
+Depends: load-dirs-common (= ${Source-Version}), git-core, ${shlibs:Depends} ${misc:Depends} ${python:Depends}
+Description: Import upstream archives into git
+ Git works fine for importing new archives. However, for situations
+ where the upstream renames or moves files and directories on a regular
+ basis, version information can be lost.
+ .
+ git-load-dirs works with git to import these things and preserve
+ changes. It works on a principle similar to Subversion's
+ svn_load_dirs or my tla_load_dirs package for tla.
+
+Package: load-dirs-common
+Architecture: all
+XB-Python-Version: ${python:Versions}
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Conflicts: tla-load-dirs (<< 1.0.14)
+Description: Common files for tla-load-dirs and darcs-load-dirs
+ These two packages share much common code. This package provides
+ that common code so you don't have to install it twice on your system.
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/copyright Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,26 @@
+This package was debianized by John Goerzen <jgoerzen@complete.org> on
+Tue, 2 Sep 2003 20:10:45 -0500.
+
+It was downloaded from the Arch repository at http://arch.complete.org/
+
+Upstream Author(s): John Goerzen <jgoerzen@complete.org>
+
+Copyright:
+
+# Copyright (C) 2003-2006 John Goerzen
+#
+# 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
+
+You may find the GPL at /usr/share/common-licenses/GPL-2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/darcs-load-dirs.install Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,2 @@
+debian/tmp/usr/bin/darcs_load_dirs usr/bin
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/darcs-load-dirs.manpages Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,1 @@
+docs/darcs_load_dirs.1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/dirs Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,2 @@
+usr/bin
+usr/lib
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/git-load-dirs.install Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,2 @@
+debian/tmp/usr/bin/git_load_dirs usr/bin
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/git-load-dirs.manpages Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,1 @@
+docs/git_load_dirs.1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/hg-load-dirs.install Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,2 @@
+debian/tmp/usr/bin/hg_load_dirs usr/bin
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/hg-load-dirs.manpages Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,1 @@
+docs/hg_load_dirs.1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/load-dirs-common.install Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,2 @@
+debian/tmp/usr/lib usr
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/pycompat Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,1 @@
+2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/rules Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,104 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+PYTHON=python
+PACKAGE=vcs-load-dirs
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+ INSTALL_PROGRAM += -s
+endif
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ # Add here commands to configure the package.
+
+ touch configure-stamp
+
+
+build: build-stamp
+
+build-stamp: configure-stamp
+ dh_testdir
+
+ # Add here commands to compile the package.
+ #/usr/bin/docbook-to-man debian/tla-load-dirs.sgml > tla-load-dirs.1
+ cd docs && make manpages
+ $(PYTHON) setup.py build
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp
+
+ # Add here commands to clean up after the build process.
+ #-$(MAKE) clean
+ -$(PYTHON) setup.py clean
+ -rm -rf ./++* ./,,*
+ -rm -rf build
+ -cd docs; make realclean
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/tla-load-dirs.
+ #$(MAKE) install DESTDIR=$(CURDIR)/debian/tla-load-dirs
+ mkdir debian/tmp
+ $(PYTHON) setup.py install --root=`pwd`/debian/tmp \
+ --no-compile
+
+
+binary-arch: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-indep: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs -i
+ dh_installdocs -i
+ dh_installexamples -i
+ dh_install -i
+# dh_installmenu
+# dh_installdebconf
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installpam
+# dh_installmime
+# dh_installinit
+# dh_installcron
+# dh_installinfo
+ dh_installman -i
+ dh_link -i
+ dh_strip -i
+ dh_compress -i
+ dh_fixperms -i
+# dh_perl
+ dh_pycentral
+ dh_python -i
+# dh_makeshlibs
+ dh_installdeb -i
+ dh_shlibdeps -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/svk-load-dirs.install Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,2 @@
+debian/tmp/usr/bin/svk_load_dirs usr/bin
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/svk-load-dirs.manpages Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,1 @@
+docs/svk_load_dirs.1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/tla-load-dirs.install Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,2 @@
+debian/tmp/usr/bin/tla_load_dirs usr/bin
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/debian/tla-load-dirs.manpages Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,1 @@
+docs/tla_load_dirs.1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/docs/Makefile Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,62 @@
+# Copyright (C) 2003-2007 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+MASTERBASE := vcs_load_dirs
+TOPNODE := vcs_load_dirs
+BASICDEPS := $(MASTERBASE).sgml
+#DOINDEX := yes
+DOINDEX := no
+HTMLARGS := -s local
+PSARGS := -s local=printlocal
+
+all: ps
+ps: $(MASTERBASE).ps
+html: html/index.html
+text: $(MASTERBASE).txt
+
+manpages: tla_load_dirs.1 darcs_load_dirs.1 baz_load_dirs.1 svk_load_dirs.1 git_load_dirs.1 hg_load_dirs.1
+%.1: %.sgml
+ docbook2man $<
+
+darcs_load_dirs.1: vcs_load_dirs.1
+ sed -e s/vcs_load_dirs/darcs_load_dirs/g \
+ -e s/VCS_LOAD_DIRS/DARCS_LOAD_DIRS/g < $< > $@
+
+hg_load_dirs.1: vcs_load_dirs.1
+ sed -e s/vcs_load_dirs/hg_load_dirs/g \
+ -e s/VCS_LOAD_DIRS/HG_LOAD_DIRS/g < $< > $@
+
+tla_load_dirs.1: vcs_load_dirs.1
+ sed -e s/vcs_load_dirs/tla_load_dirs/g \
+ -e s/VCS_LOAD_DIRS/TLA_LOAD_DIRS/g < $< > $@
+
+baz_load_dirs.1: vcs_load_dirs.1
+ sed -e s/vcs_load_dirs/baz_load_dirs/g \
+ -e s/VCS_LOAD_DIRS/BAZ_LOAD_DIRS/g < $< > $@
+
+svk_load_dirs.1: vcs_load_dirs.1
+ sed -e s/vcs_load_dirs/svk_load_dirs/g \
+ -e s/VCS_LOAD_DIRS/SVK_LOAD_DIRS/g < $< > $@
+
+git_load_dirs.1: vcs_load_dirs.1
+ sed -e s/vcs_load_dirs/git_load_dirs/g \
+ -e s/VCS_LOAD_DIRS/GIT_LOAD_DIRS/g < $< > $@
+
+include sgml-common/Makefile.common
+
+realclean: clean
+ -rm -rf *.links *.refs *.1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/docs/sgml-common/COPYING Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,342 @@
+ 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) <year> <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) year 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.
+
+# arch-tag: License for sgml-common
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/docs/sgml-common/COPYRIGHT Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,39 @@
+Copyright for all code except ps2epsi
+-------------------------------------
+# Copyright (C) 2002, 2003 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+Copyright for ps2epsi
+---------------------
+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, 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, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.
+
+My local changes were to the page size.
+
+# arch-tag: Copyright statements and information for sgml-common
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/docs/sgml-common/ChangeLog Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,265 @@
+# do not edit -- automatically generated by arch changelog
+# arch-tag: automatic-ChangeLog--jgoerzen@complete.org--projects/sgml-common--head--1.0
+#
+
+2004-05-21 14:28:00 GMT John Goerzen <jgoerzen@complete.org> patch-20
+
+ Summary:
+ Fixed text target
+ Revision:
+ sgml-common--head--1.0--patch-20
+
+
+ modified files:
+ ChangeLog SConstruct
+
+
+2004-02-27 15:22:59 GMT John Goerzen <jgoerzen@complete.org> patch-19
+
+ Summary:
+ Added manpage generation support
+ Revision:
+ sgml-common--head--1.0--patch-19
+
+
+ modified files:
+ ChangeLog SConstruct
+
+
+2004-02-03 19:50:11 GMT John Goerzen <jgoerzen@complete.org> patch-18
+
+ Summary:
+ More clearing up of REs
+ Revision:
+ sgml-common--head--1.0--patch-18
+
+
+ modified files:
+ ChangeLog SConstruct
+
+
+2004-02-03 19:40:22 GMT John Goerzen <jgoerzen@complete.org> patch-17
+
+ Summary:
+ Tightened up re for finding image tags
+ Revision:
+ sgml-common--head--1.0--patch-17
+
+
+ modified files:
+ ChangeLog SConstruct
+
+
+2004-02-03 19:28:03 GMT John Goerzen <jgoerzen@complete.org> patch-16
+
+ Summary:
+ More changes to support scanner
+ Revision:
+ sgml-common--head--1.0--patch-16
+
+ Removed outdated code and made more bugfixes relevant to documents without
+ images or with only pre-generated images.
+
+ new files:
+ ChangeLog
+
+ modified files:
+ SConstruct
+
+
+2004-02-03 18:41:51 GMT John Goerzen <jgoerzen@complete.org> patch-15
+
+ Summary:
+ HTML gen now basically functional with scanning
+ Revision:
+ sgml-common--head--1.0--patch-15
+
+
+ modified files:
+ SConstruct
+
+
+2004-02-03 17:41:51 GMT John Goerzen <jgoerzen@complete.org> patch-14
+
+ Summary:
+ Auto-scanning is now close for PDFs.
+ Revision:
+ sgml-common--head--1.0--patch-14
+
+
+ modified files:
+ SConstruct
+
+
+2004-02-03 16:59:02 GMT John Goerzen <jgoerzen@complete.org> patch-13
+
+ Summary:
+ Scanners starting to work
+ Revision:
+ sgml-common--head--1.0--patch-13
+
+
+ modified files:
+ SConstruct
+
+
+2004-02-03 16:22:51 GMT John Goerzen <jgoerzen@complete.org> patch-12
+
+ Summary:
+ Cleaned up HTML situation
+ Revision:
+ sgml-common--head--1.0--patch-12
+
+
+ modified files:
+ SConstruct
+
+
+2004-02-02 22:33:50 GMT John Goerzen <jgoerzen@complete.org> patch-11
+
+ Summary:
+ SConstruct file now working
+ Revision:
+ sgml-common--head--1.0--patch-11
+
+
+ modified files:
+ SConstruct
+
+
+2004-02-02 22:07:27 GMT John Goerzen <jgoerzen@complete.org> patch-10
+
+ Summary:
+ Fixed nasty PNG gen bug
+ Revision:
+ sgml-common--head--1.0--patch-10
+
+
+ modified files:
+ SConstruct
+
+
+2004-02-02 21:57:32 GMT John Goerzen <jgoerzen@complete.org> patch-9
+
+ Summary:
+ Checkpointing some more...
+ Revision:
+ sgml-common--head--1.0--patch-9
+
+
+ modified files:
+ SConstruct
+
+
+2004-02-02 21:37:29 GMT John Goerzen <jgoerzen@complete.org> patch-8
+
+ Summary:
+ Checkpointing some more...
+ Revision:
+ sgml-common--head--1.0--patch-8
+
+
+ modified files:
+ SConstruct
+
+
+2004-02-02 20:19:02 GMT John Goerzen <jgoerzen@complete.org> patch-7
+
+ Summary:
+ Checkpointing
+ Revision:
+ sgml-common--head--1.0--patch-7
+
+
+ modified files:
+ SConstruct
+
+
+2004-02-02 19:18:40 GMT John Goerzen <jgoerzen@complete.org> patch-6
+
+ Summary:
+ Added Plucker
+ Revision:
+ sgml-common--head--1.0--patch-6
+
+
+ modified files:
+ SConstruct
+
+
+2004-02-02 19:09:16 GMT John Goerzen <jgoerzen@complete.org> patch-5
+
+ Summary:
+ Added cleanup rules
+ Revision:
+ sgml-common--head--1.0--patch-5
+
+
+ modified files:
+ SConstruct
+
+
+2004-02-02 18:58:11 GMT John Goerzen <jgoerzen@complete.org> patch-4
+
+ Summary:
+ sources now checks only chapters/ to prevent dep cycle with index
+ Revision:
+ sgml-common--head--1.0--patch-4
+
+
+ modified files:
+ Makefile.common SConstruct {arch}/=tagging-method
+
+
+2004-02-02 17:51:27 GMT John Goerzen <jgoerzen@complete.org> patch-3
+
+ Summary:
+ Experimental SCons conversion
+ Revision:
+ sgml-common--head--1.0--patch-3
+
+
+ new files:
+ SConstruct
+
+
+2003-10-21 20:24:04 GMT John Goerzen <jgoerzen@complete.org> patch-2
+
+ Summary:
+ Added plain text generation target
+ Revision:
+ sgml-common--head--1.0--patch-2
+
+ Added plain text generation target
+
+
+ modified files:
+ ./Makefile.common
+
+
+2003-09-10 14:27:58 GMT John Goerzen <jgoerzen@complete.org> patch-1
+
+ Summary:
+ Minor updates to PNG generation and gtk-doc icon locations
+ Revision:
+ sgml-common--head--1.0--patch-1
+
+
+ modified files:
+ Makefile.common
+
+
+2003-09-10 14:24:24 GMT John Goerzen <jgoerzen@complete.org> base-0
+
+ Summary:
+ initial import
+ Revision:
+ sgml-common--head--1.0--base-0
+
+
+ (automatically generated log message)
+
+ new files:
+ COPYING COPYRIGHT Makefile.common ps2epsi
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/docs/sgml-common/Makefile.common Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,229 @@
+# -*- Mode: makefile; -*-
+# arch-tag: Primary sgml-common top-level Makefile
+# Common Makefile for SGML documents
+#
+# Copyright (C) 2002, 2003 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+# The following variables should be set:
+# MASTERBASE -- basename of master file -- example: my-guide
+# BASICDEPS -- various dependencies of the master file. For instance,
+# this might include files included in the SGML. It could also be empty.
+# TOPNODE -- Basename of top id for HTML link.
+
+MASTER := $(MASTERBASE).sgml
+FIGUREDIRS := $(wildcard figures/*)
+DOINDEX ?= yes
+
+######################################################################
+# Index generation
+######################################################################
+
+ifeq ($(DOINDEX), yes)
+
+INDEXSGMLFILE := index/index.sgml
+INDEXDATAFILE := index/HTML.index
+
+$(INDEXSGMLFILE): $(INDEXDATAFILE)
+ @echo " *** Generating SGML index from index list"
+ collateindex.pl -i ch.index -g -o index/index.sgml index/HTML.index
+
+$(INDEXDATAFILE): $(MASTER) $(BASICDEPS)
+# jade -t sgml -d docbook.dsl -V html-index $(MASTER)
+# jade -t sgml -V html-index $(MASTER)
+ @echo " *** Generating index list from document"
+ -rm -r index
+ mkdir index
+ collateindex.pl -i ch.index -N -o index/index.sgml
+ #mkdir html-temp
+ #docbook2html --output html-temp -V html-index $(MASTER)
+ docbook-2-html -O -V -O html-index $(HTMLARGS) $(MASTER)
+ mv $(MASTERBASE)-html/HTML.index index/
+ rm -r $(MASTERBASE)-html
+endif # DOINDEX
+
+######################################################################
+# Text generation
+######################################################################
+$(MASTERBASE).txt: $(MASTER) $(BASICDEPS) $(INDEXSGMLFILE)
+ @echo " *** Generating text output"
+ docbook2txt $(MASTER)
+
+######################################################################
+# PostScript generation
+######################################################################
+
+$(MASTERBASE).ps: $(MASTER) $(BASICDEPS) $(INDEXSGMLFILE) $(EPSFILES)
+ @echo " *** Generating PostScript output"
+# This works too: docbook2ps -V paper-size=Letter $(MASTER)
+ docbook-2-ps -q -O -V -O paper-size=Letter $(PSARGS) $(MASTER)
+
+######################################################################
+# Figure generation
+######################################################################
+
+%_1.epi: %.ps
+ $(get-epi)
+%_2.epi: %.ps
+ $(get-epi)
+%_3.epi: %.ps
+ $(get-epi)
+%_4.epi: %.ps
+ $(get-epi)
+%_5.epi: %.ps
+ $(get-epi)
+%_6.epi: %.ps
+ $(get-epi)
+%_7.epi: %.ps
+ $(get-epi)
+%_8.epi: %.ps
+ $(get-epi)
+%_9.epi: %.ps
+ $(get-epi)
+%_10.epi: %.ps
+ $(get-epi)
+%_11.epi: %.ps
+ $(get-epi)
+%_12.epi: %.ps
+ $(get-epi)
+
+%_1_l.epi: %.ps
+ $(get-epil)
+%_2_l.epi: %.ps
+ $(get-epil)
+%_3_l.epi: %.ps
+ $(get-epil)
+%_4_l.epi: %.ps
+ $(get-epil)
+%_5_l.epi: %.ps
+ $(get-epil)
+%_6_l.epi: %.ps
+ $(get-epil)
+%_7_l.epi: %.ps
+ $(get-epil)
+%_8_l.epi: %.ps
+ $(get-epil)
+%_9_l.epi: %.ps
+ $(get-epil)
+%_10_l.epi: %.ps
+ $(get-epil)
+%_11_l.epi: %.ps
+ $(get-epil)
+%_12_l.epi: %.ps
+ $(get-epil)
+
+%.png: %_l.epi
+ @echo " *** Generating PNG image for $<"
+ gs -q -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r90 -dBATCH -dNOPAUSE \
+ -dSAFER -sOutputFile=$@ -sDEVICE=png16m $< -c showpage
+
+%.ps: %.pdf
+ pdftops $<
+
+######################################################################
+# HTML generation
+######################################################################
+
+define copy-figures-worker
+mkdir html/figures
+for DIRECTORY in $(FIGUREDIRS); do mkdir html/$$DIRECTORY; cp -v $$DIRECTORY/*.png html/$$DIRECTORY/; done
+endef
+
+define copy-figures
+$(if $(FIGUREDIRS),$(copy-figures-worker))
+endef
+
+html/index.html: $(MASTER) $(BASICDEPS) $(INDEXSGMLFILE) $(PNGFILES)
+ @echo " *** Generating HTML output"
+ -rm -r html
+ mkdir html
+ #docbook2html --output html $(MASTER)
+ docbook-2-html $(HTMLARGS) $(MASTER)
+ mv $(MASTERBASE)-html/* html/
+ rmdir $(MASTERBASE)-html
+ $(copy-figures)
+# tidy -m html/*.html
+ ln -s $(TOPNODE).html html/index.html
+ -cp -v /usr/share/gtk-doc/data/*.png html/
+
+######################################################################
+# Cleaning
+######################################################################
+
+clean:
+ -rm -f `find . -name "*~"` `find . -name "*.png"` `find . -name "*.epi"`
+ -rm -r html-temp html index $(MASTERBASE).txt
+ -rm *.aux *.log *.dvi *.tex *.jtex *.ps *.html *.log *.out jadetex.cfg
+ -rm *.ps html/*.html figures/topology/*.epi figures/topology/*.png
+ -rm *.log *.pdb
+ -rm `find . -name ".ps"` `find . -name "*.epi"` *.pdf
+ -rm `find . -name "*.png"`
+
+######################################################################
+# Utility functions
+######################################################################
+
+GETPAGE=$(shell echo $(1) | sed -e "s/^.*_\([0-9]*\).epi/\\1/g")
+define get-epi
+@echo " *** Generating EPI image for $<"
+psselect -q $(call GETPAGE,$@) $< temp.ps
+psresize -w 6.375in -h 8.25in temp.ps temp2.ps
+../sgml-common/ps2epsi temp2.ps $@
+rm temp.ps temp2.ps
+endef
+
+GETPAGEL=$(shell echo $(1) | sed -e "s/^.*_\([0-9]*\)_l.epi/\\1/g")
+define get-epil
+@echo " *** Generating large EPI image for $<"
+psselect -q $(call GETPAGEL,$@) $< temp.ps
+psresize -w 8.5in -h 11in temp.ps temp2.ps
+../sgml-common/ps2epsi temp2.ps $@
+rm temp.ps temp2.ps
+endef
+
+
+pdf: $(MASTERBASE).pdf
+
+$(MASTERBASE).pdf: $(MASTERBASE).ps
+ ps2pdf14 $(MASTERBASE).ps
+
+plucker: $(MASTERBASE).pdb
+$(MASTERBASE).pdb: html
+ plucker-build --bpp=4 --compression=zlib --doc-name="$(MASTERBASE)" \
+ -H file:`pwd`/html/index.html -M 5 \
+ --maxheight=320 --maxwidth=310 \
+ --staybelow=file:`pwd`/html --title="$(MASTERBASE)" -p . \
+ -f $(MASTERBASE)
+
+###########################################################################
+# These are obsolete but should still work.
+###########################################################################
+
+
+$(MASTERBASE).dvi: $(MASTERBASE).tex
+ @echo " *** Generating DVI file."
+ jadetex unix-guide.tex
+ jadetex unix-guide.tex
+ jadetex unix-guide.tex
+
+$(MASTERBASE).tex: $(MASTER) $(BASICDEPS) $(INDEXSGMLFILE)
+ @echo " *** Generating TeX files."
+ docbook2tex -V paper-size=Letter $(MASTER)
+# jade -t tex -V tex-backend -d \
+# /usr/share/sgml/docbook/stylesheet/dsssl/modular/print/docbook.dsl \
+# $(MASTER)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/docs/sgml-common/SConstruct Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,208 @@
+# vim: set filetype=python :
+# arch-tag: general-purpose SCons build file for sgml-common
+
+from glob import glob
+import os, re
+
+############################################################
+# Setup
+############################################################
+
+SConsignFile('.sconsign-master')
+#Import('env')
+d = env.Dictionary()
+if not 'JADE' in d:
+ d['JADE'] = 'jade'
+if not 'INDEXNODE' in d:
+ d['INDEXNODE'] = 'ch.index'
+if not 'GTKIMGPATH' in d:
+ d['GTKIMGPATH'] = '/usr/share/gtk-doc/data'
+if not 'PS2EPSI' in d:
+ d['PS2EPSI'] = '../sgml-common/ps2epsi'
+
+def removeindex(l):
+ while 'index/index.sgml' in l:
+ l.remove('index/index.sgml')
+
+master = d['MASTERBASE']
+mastersgml = master + '.sgml'
+sources = [mastersgml] + glob('*/*.sgml') + glob('*/*/*.sgml')
+removeindex(sources)
+db2htmlcmd = 'docbook-2-html -D $JADE ${HTMLARGS} ${SOURCE}'
+db2htmlindexcmd = 'docbook-2-html -D $JADE -O -V -O html-index ${HTMLARGS} ${SOURCE}'
+
+##################################################
+# SCANNERS
+##################################################
+def recursescan(scanner, node, env):
+ result = scanner(node, env)
+ retval = []
+ for item in result:
+ retval.append(item)
+ retval.extend(recursescan(scanner, item, env))
+ return retval
+
+SGML_includes_re = re.compile(r'<!ENTITY[^>]+SYSTEM[^>]+"(.+)"', re.M)
+def SGML_includes_scan(node, env, path):
+ ret = SGML_includes_re.findall(node.get_contents())
+ removeindex(ret)
+ return ret
+
+SGML_includes_scanner = Scanner(name = 'SGML_includes',
+ function = SGML_includes_scan, recursive = 1, skeys = ['.sgml', '.ent'])
+
+SGML_image_pdf_re = re.compile(r'<(graphic|imagedata).+?fileref="([^"]+\.pdf)"', re.S)
+SGML_image_png_re = re.compile(r'<(graphic|imagedata).+?fileref="([^"]+\.png)"', re.S)
+def SGML_image_scanner(node, env, path, arg):
+ root, ext = os.path.splitext(str(node))
+ contents = node.get_contents()
+ return SGML_includes_scan(node, env, path) + \
+ [os.getcwd() + '/' + x[1] for x in arg.findall(contents)]
+
+SGML_pdf_scanner = Scanner(name = 'SGML_pdf',
+ function = SGML_image_scanner, argument = SGML_image_pdf_re,
+ recursive = 1)
+SGML_png_scanner = Scanner(name = 'SGML_png',
+ function = SGML_image_scanner, argument = SGML_image_png_re,
+ recursive = 1)
+
+##################################################
+# BUILDERS
+##################################################
+
+#### PLAIN TEXT
+Btxt = Builder(action="docbook2txt $SOURCE", src_suffix='.sgml', suffix='.txt')
+
+#### PDF / POSTSCRIPT
+Bpdf = Builder(action="docbook-2-pdf -D ${JADE} -q -O -V -O paper-size=Letter ${PDFARGS} ${SOURCE}",
+ src_suffix='.sgml', suffix='.pdf')
+Bpdf2ps = Builder(action="pdftops ${SOURCE}", src_suffix='.pdf', suffix='.ps')
+
+#### MAN PAGES
+# FIXME: test this
+Bman = Builder(action="docbook2man $SOURCE", src_suffix='.sgml', suffix='.1')
+
+#### HTML
+Bhtml = Builder(action = [ \
+ 'if test -d ${TARGET.dir} ; then rm -r ${TARGET.dir} ; fi',
+ 'mkdir ${TARGET.dir}',
+ db2htmlcmd,
+ 'mv ${MASTERBASE}-html/* ${TARGET.dir}/',
+ 'rmdir ${MASTERBASE}-html',
+ 'ln -s ${TOPNODE}.html ${TARGET.dir}/index.html',
+ 'cp ${GTKIMGPATH}/*.png ${TARGET.dir}/'])
+
+#### PNG
+Bepip2png = Builder(action = 'gs -q -dTextAlphaBits=4 -dGraphicsAlphaBits=4 ' +\
+ '-r90 -dBATCH -dNOPAUSE -dSAFER -sOutputFile=$TARGET ' + \
+ '-sDEVICE=png16m $SOURCE -c showpage', suffix='.png', src_suffix='.pngepi')
+
+#### EPI from PS
+def getpagenumfromname(target, source, env, for_signature):
+ return re.search('^.*_(\d+)\.(png){0,1}epi$', str(target[0])).group(1)
+d['GETPAGE'] = getpagenumfromname
+
+Aps2epi = Action(['psselect -q ${GETPAGE} $SOURCE temp.ps',
+ 'psresize -w ${WIDTH} -h ${HEIGHT} temp.ps temp2.ps',
+ '$PS2EPSI temp2.ps $TARGET',
+ 'rm temp.ps temp2.ps'])
+Bps2epi = Builder(action=Aps2epi, src_suffix='.ps', suffix='.epi')
+Bps2epip = Builder(action=Aps2epi, src_suffix='.ps', suffix='.pngepi')
+Bepi2pdf = Builder(action="epstopdf -o=${TARGET} ${SOURCE}", suffix='.pdf',
+ src_suffix='.epi')
+
+#### PLUCKER
+Bplucker = Builder(action = 'plucker-build --bpp=4 --compression=zlib ' + \
+ '--doc-name="${MASTERBASE}" -H file:${SOURCE.abspath} -M 5 ' + \
+ '--maxheight=320 --maxwidth=310 --staybelow=file:`pwd`/${SOURCE.dir} ' + \
+ '--title="${MASTERBASE}" -p . -f ${MASTERBASE}')
+
+##################################################
+# General setup
+##################################################
+
+env.Append(BUILDERS = {'Text': Btxt, 'PDF2PS': Bpdf2ps, 'PDF': Bpdf, 'HTML': Bhtml,
+ 'Plucker': Bplucker, 'PS2EPI': Bps2epi, 'PS2EPIP': Bps2epip,
+ 'EPI2PDF': Bepi2pdf, 'EPIP2PNG': Bepip2png, 'MAN': Bman})
+
+#### INDEX GENERATION
+if 'DOINDEX' in d:
+ Bindex = Builder(action = ['if test -d ${TARGET.dir} ; then rm -r ${TARGET.dir} ; fi',
+ "mkdir ${TARGET.dir}",
+ "collateindex.pl -i $INDEXNODE -N -o $TARGET",
+ db2htmlindexcmd,
+ "mv ${MASTERBASE}-html/HTML.index ${TARGET.dir}/",
+ "rm -r ${MASTERBASE}-html",
+ "collateindex.pl -i $INDEXNODE -g -o $TARGET ${TARGET.dir}/HTML.index"])
+ env['BUILDERS']['Index'] = Bindex
+ index = env.Index('index/index.sgml', mastersgml)
+ env.Depends(index, sources)
+ env.Clean(index, 'index')
+ deps = sources + [index]
+else:
+ deps = sources
+
+##################################################
+# BUILD RULES
+###################################################
+# Text
+text = env.Text(mastersgml)
+env.Depends(text, deps)
+env.Alias('text', text)
+
+# PDF
+pdfsgml = File(mastersgml)
+pdf = env.PDF(pdfsgml)
+figsindoc = [x for x in recursescan(SGML_pdf_scanner, pdfsgml, env) if str(x).endswith('.pdf')]
+epipdf = []
+for file in figsindoc:
+ pdfname = re.sub('_\d+\.pdf$', '.pdf', str(file))
+ if pdfname == str(file):
+ # This is not a filename that fits our pattern; add unmodified.
+ epipdf.append(file)
+ continue
+ psfile = env.PDF2PS(source = pdfname)
+ epifile = env.PS2EPI(str(file).replace(".pdf", ".epi"), psfile,
+ WIDTH='6.375in', HEIGHT='8.25in')
+ epipdf.append(env.EPI2PDF(source = epifile))
+
+env.Depends(pdf, deps)
+env.Depends(pdf, epipdf)
+env.Alias('pdf', pdf)
+env.Clean(pdf, ['jadetex.cfg', '${MASTERBASE}.aux', '${MASTERBASE}.dvi',
+ '${MASTERBASE}.jtex', '${MASTERBASE}.log', '${MASTERBASE}.out',
+ 'jade-out.fot'])
+
+# PS
+ps = env.PDF2PS(source = pdf)
+env.Alias('ps', ps)
+
+# HTML
+htmlsgml = File(mastersgml)
+buildhtml = env.HTML('html/index.html', htmlsgml)
+figsindoc = [x for x in recursescan(SGML_png_scanner, htmlsgml, env) if str(x).endswith('.png')]
+epipng = []
+for file in figsindoc:
+ pdfname = re.sub('_\d+\.png$', '.pdf', str(file))
+ if pdfname == str(file):
+ # This is not a filename that fits our pattern; add unmodified.
+ epipng.append(file)
+ continue
+ psfile = env.PDF2PS(source = pdfname)
+ epifile = env.PS2EPIP(str(file).replace(".png", ".pngepi"), psfile,
+ WIDTH='8.5in', HEIGHT='11in')
+ epipng.append(env.EPIP2PNG(source = epifile))
+
+env.Depends(buildhtml, epipng)
+env.Depends(buildhtml, deps)
+pnginstalls = env.InstallAs(['html/' + str(x) for x in epipng], epipng)
+env.Depends(pnginstalls, buildhtml)
+html = env.Alias('html', buildhtml)
+html = env.Alias('html', pnginstalls)
+env.Clean(buildhtml, 'html')
+
+# Plucker
+plucker = env.Plucker(master + '.pdb', 'html/index.html')
+env.Alias('plucker', plucker)
+
+env.Default(html)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/docs/sgml-common/ps2epsi Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,77 @@
+#!/bin/sh
+# $RCSfile: ps2epsi,v $ $Revision: 1.4.2.2 $
+# arch-tag: ps2epsi customized for sgml-common
+
+tmpfile=/tmp/ps2epsi$$
+
+export outfile
+
+if [ $# -lt 1 -o $# -gt 2 ]; then
+ echo "Usage: `basename $0` file.ps [file.epsi]" 1>&2
+ exit 1
+fi
+
+infile=$1;
+
+if [ $# -eq 1 ]
+then
+ case "${infile}" in
+ *.ps) base=`basename ${infile} .ps` ;;
+ *.cps) base=`basename ${infile} .cps` ;;
+ *.eps) base=`basename ${infile} .eps` ;;
+ *.epsf) base=`basename ${infile} .epsf` ;;
+ *) base=`basename ${infile}` ;;
+ esac
+ outfile=${base}.epsi
+else
+ outfile=$2
+fi
+
+ls -l ${infile} |
+awk 'F==1 {
+ cd="%%CreationDate: " $6 " " $7 " " $8;
+ t="%%Title: " $9;
+ f="%%For:" U " " $3;
+ c="%%Creator: Ghostscript ps2epsi from " $9;
+ next;
+ }
+ /^%!/ {next;}
+ /^%%Title:/ {t=$0; next;}
+ /^%%Creator:/ {c=$0; next;}
+ /^%%CreationDate:/ {cd=$0; next;}
+ /^%%For:/ {f=$0; next;}
+ !/^%/ {
+ print "/ps2edict 30 dict def";
+ print "ps2edict begin";
+ print "/epsititle (" t "\\n) def";
+ print "/epsicreator (" c "\\n) def";
+ print "/epsicrdt (" cd "\\n) def";
+ print "/epsifor (" f "\\n) def";
+ print "end";
+ exit(0);
+ }
+ ' U="$USERNAME$LOGNAME" F=1 - F=2 ${infile} >$tmpfile
+
+gs -q -dNOPAUSE -dSAFER -dDELAYSAFER -r72 -sDEVICE=bit -sOutputFile=/dev/null $tmpfile ps2epsi.ps $tmpfile <${infile} 1>&2
+rm -f $tmpfile
+
+(
+cat << BEGINEPS
+save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def
+%%EndProlog
+%%Page 1 1
+BEGINEPS
+
+cat ${infile} |
+sed -e '/^%%BeginPreview:/,/^%%EndPreview[^!-~]*$/d' -e '/^%!PS-Adobe/d'\
+ -e '/^%%[A-Za-z][A-Za-z]*[^!-~]*$/d' -e '/^%%[A-Za-z][A-Za-z]*: /d'
+
+cat << ENDEPS
+%%Trailer
+cleartomark countdictstack exch sub { end } repeat restore
+%%EOF
+ENDEPS
+
+) >> ${outfile}
+
+exit 0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/docs/vcs_load_dirs.sgml Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,314 @@
+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+ <!ENTITY vld "<application>vcs_load_dirs</application>">
+]>
+<!-- "file:///usr/share/sgml/docbook/dtd/xml/4.2/docbookx.dtd"> -->
+
+<reference>
+ <title>vcs_load_dirs Manual</title>
+
+ <refentry>
+ <refentryinfo>
+ <address><email>jgoerzen@complete.org</email></address>
+ <author><firstname>John</firstname><surname>Goerzen</surname></author>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>vcs_load_dirs</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo>John Goerzen</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vcs_load_dirs</refname>
+ <refpurpose>Import upstream archives into tla, hg, darcs, or git and handle renames</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>vcs_load_dirs</command>
+ <group>
+ <arg>-w<replaceable>WC</replaceable></arg>
+ <arg>--wc=<replaceable>WC</replaceable></arg>
+ </group>
+ <group>
+ <arg>-l<replaceable>FILE</replaceable></arg>
+ <arg>--log=<replaceable>FILE</replaceable></arg>
+ </group>
+ <group>
+ <arg>-L<replaceable>TEXT</replaceable></arg>
+ <arg>--log-message=<replaceable>TEXT</replaceable></arg>
+ </group>
+ <group>
+ <arg>-s<replaceable>MSG</replaceable></arg>
+ <arg>--summary=<replaceable>MSG</replaceable></arg>
+ </group>
+ <group>
+ <arg>-v</arg>
+ <arg>--verbose</arg>
+ </group>
+ <group>
+ <arg>-n</arg>
+ <arg>--no-commit</arg>
+ </group>
+ <group>
+ <arg>-f</arg>
+ <arg>--fs-changes-only</arg>
+ </group>
+ <arg choice="plain">vendor_source_dir</arg>
+ </cmdsynopsis>
+
+ <cmdsynopsis>
+ <command>vcs_load_dirs</command>
+ <arg choice="plain">--version</arg>
+ </cmdsynopsis>
+
+ <cmdsynopsis>
+ <command>vcs_load_dirs</command>
+ <group>
+ <arg choice="plain">--help</arg>
+ <arg choice="plain">-h</arg>
+ </group>
+ </cmdsynopsis>
+
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ &vld; is a tool to help you import archives from people that
+ do not use Arch, Mercurial, Darcs, or Git into an Arch,
+ Mercurial, Darcs, or Git
+ archive. Along the way, it takes
+ care of all the typical hassles: it will create tags in the
+ repository for new files; delete tags for removed files;
+ and move tags for files that have themselves been moved.
+ &vld; can handle both first imports of a package and
+ successive imports.
+ </para>
+ <para>
+ For those familiar with Subversion, you will know that it has
+ a tool called <application>svn_load_dirs</application>. &vld;
+ is modeled after that program, but contains various
+ improvements for ease of use.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Usage</title>
+ <para>
+ In the simplest case, you will simply run &vld; from your
+ working directory, passing it the name of the directory
+ containing the new upstream sources. &vld will run, usually
+ making and commiting changes without any need of greater
+ assistance from you.
+ </para>
+ <refsect2>
+ <title>Renamed Files</title>
+ <para>
+ &vld; can automatically detect added files and deleted files
+ if they occur in isolation. However, it cannot
+ automatically tell the difference between a delete and an
+ add, and a rename. (There is not enough information in
+ simple upstream imports to capture the intent.)
+ Therefore, &vld; will prompt you to solve the problem.
+ You can opt to ignore it -- &vld; will just issue deletes
+ and adds as appropriate -- but then your history will be
+ harder to track if there were indeed renames along the way.
+ </para>
+ <para>
+ You will be presented with a four-column listing. Those
+ columns, in order from left to right, represent:
+ </para>
+ <orderedlist>
+ <listitem><para>File number for deleted file</para>
+ </listitem>
+ <listitem><para>File name of deleted file</para>
+ </listitem>
+ <listitem><para>File number of added file</para>
+ </listitem>
+ <listitem><para>File name of added file</para>
+ </listitem>
+ </orderedlist>
+ <para>
+ You have three options at this point: you can press q to
+ indicate that there are no more renames; you can press r to
+ request the list be re-drawn, or you can supply one or more
+ renames.
+ </para>
+ <para>
+ A rename uses the left column as the old name and the right
+ column as the new name. To save you typing, you just enter
+ the appropriate file numbers separated by spaces. So, if
+ the file at position 5 on the left moved to position 1b on
+ the right, just enter "5 1b". After doing that, the list
+ will be automatically re-drawn, and you can either make
+ further selections or exit.
+ </para>
+ <para>
+ If you want to rename several files at once, enter your
+ rename commands separated by commas. For instance, "5 1b, 6
+ 1c".
+ </para>
+ </refsect2>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <variablelist>
+ <varlistentry><term>-h</term>
+ <term>--help</term>
+ <listitem><para>Displays a brief summary of the available
+ options and exits.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>-l<replaceable>FILE</replaceable></term>
+ <term>--log=<replaceable>FILE</replaceable></term>
+ <listitem><para>
+ Add the contents of <replaceable>FILE</replaceable> to
+ the end of the log message automatically generated by
+ &vld; for a commit/record.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>-L<replaceable>TEXT</replaceable></term>
+ <term>--log-message=<replaceable>TEXT</replaceable></term>
+ <listitem><para>
+ Add the <replaceable>TEXT</replaceable> specified on the
+ command line to the log message.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>-s<replaceable>MSG</replaceable></term>
+ <term>--summary=<replaceable>MSG</replaceable></term>
+ <listitem>
+ <para>
+ Sets the log summary line to the
+ <replaceable>MSG</replaceable> supplied on the command
+ line. This operation requires Darcs, Mercurial, or
+ tla 1.1 or above; tla 1.0
+ does not provide the features necessary to implement it.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>-n</term>
+ <term>--no-commit</term>
+ <listitem><para>
+ Do not commit changes to the target VCS.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>-f</term>
+ <term>--fs-changes-only</term>
+ <listitem><para>
+ Move files in the filesystem, but do not inform VCS of
+ changes. You will almost certainly want to use this
+ with -n. This also suppresses the interactive interface.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>-v</term>
+ <term>--verbose</term>
+ <listitem><para>Causes &vld; to display additional status
+ information. You will see the darcs/tla/git/hg commands that are
+ being run behind the scenes, and some executed commands
+ may receive arguments asking them to be more verbose as
+ well.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>--version</term>
+ <listitem><para>Causes &vld; to print its version number and
+ exit.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>-w<replaceable>WC</replaceable></term>
+ <term>--wc=<replaceable>WC</replaceable></term>
+ <listitem>
+ <para>
+ Explicitly set the working copy directory to
+ <replaceable>WC</replaceable>. If not specified,
+ defaults to the current working directory.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>Copyright</title>
+ <para>&vld;, and this manual, are Copyright © 2003-2007 John Goerzen.</para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ 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</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Author</title>
+ <para>&vld;, its libraries, documentation, and all included files, except where
+ noted, was written by John Goerzen <email>jgoerzen@complete.org</email> and
+ copyright is held as stated in the COPYRIGHT section.
+ </para>
+
+ <para>
+ The homepage for &vld; is
+ <ulink
+ url="http://software.complete.org/vcs-load-dirs"></ulink>
+ </para>
+ <para>
+ This package may be downloaded from
+ <ulink
+ url="http://packages.debian.org/vcs-load-dirs"></ulink>.
+ darcs users may also obtain the latest version with:
+ <screen>
+$ darcs get --partial http://darcs.complete.org/vcs-load-dirs
+ </screen>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <application>tla</application>(1),
+ <application>darcs</application>(1),
+ <application>hg</application>(1),
+ <application>git</application>(1),
+ <application>tla-buildpackage</application>(1),
+ <application>darcs-buildpackage</application>(1),
+ <application>hg-buildpackage</application>(1).
+ </para>
+ </refsect1>
+ </refentry>
+</reference>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-set-face: T
+End:
+-->
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/git_load_dirs Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+
+### REMEMBER TO UPDATE VERSION IN vcs_support/init.py
+
+# Copyright (C) 2006-2007 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+
+from vcs_support import init
+
+init.run("git")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/hg_load_dirs Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+
+### REMEMBER TO UPDATE VERSION IN vcs_support/init.py
+
+# Copyright (C) 2003-2007 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+
+from vcs_support import init
+
+init.run("hg")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/setup.py Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+# Copyright (C) 2003-2007 John Goerzen
+#
+# 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
+# END OF COPYRIGHT #
+
+from distutils.core import setup
+
+setup(name = "vcs_load_dirs",
+ author = 'John Goerzen',
+ author_email = 'jgoerzen@complete.org',
+ packages = ['vcs_support'],
+ scripts = ['tla_load_dirs', 'hg_load_dirs', 'darcs_load_dirs', 'baz_load_dirs', 'svk_load_dirs', 'git_load_dirs']
+ #license = offlineimap.version.copyright + \
+ # ", Licensed under the GPL version 2"
+)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/svk_load_dirs Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+# Copyright (C) 2003-2007 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+from vcs_support import init
+init.run("svk")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/tla_load_dirs Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+# Copyright (C) 2003-2007 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+from vcs_support import init
+init.run("tla")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/vcs_support/commandver.py Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,179 @@
+# Copyright (C) 2003-2007 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+import util
+vcssyn = None
+vcsobj = None
+vcscmd = None
+darcs = False
+svk = False
+git = False
+hg = False
+
+def setscm(x):
+ global darcs, svk, git, vcscmd, hg
+ if (x == "darcs"):
+ vcscmd = "darcs"
+ darcs = True
+ elif (x == "baz"):
+ vcscmd = "baz"
+ elif (x == "tla"):
+ vcscmd = "tla"
+ elif (x == "git"):
+ vcscmd = "git"
+ git = True
+ elif (x == "hg"):
+ vcscmd = "hg"
+ hg = True
+ elif (x == "svk"):
+ vcscmd = "svk"
+ svk = True
+ else:
+ print "Failed to determine VCS to use"
+ sys.exit(2)
+ print " VCSCMD: ", vcscmd
+
+def isdarcs():
+ global darcs
+ return darcs
+
+def issvk():
+ global svk
+ return svk
+
+def isgit():
+ global git
+ return git
+
+def ishg():
+ global hg
+ return hg
+
+def getvcssyntax():
+ global vcssyn, vcsobj
+ if vcssyn != None:
+ return vcssyn
+
+ if isdarcs():
+ vcssyn = 'darcs'
+ vcsobj = Darcs()
+ elif ishg():
+ vcssyn = 'hg'
+ vcsobj = Hg()
+ elif isgit():
+ vcssyn = 'Git'
+ vcsobj = Git()
+ elif util.getstdoutsafeexec(vcscmd, ['-V'])[0].find('tla-1.0.') != -1:
+ vcssyn = '1.0'
+ vcsobj = Tla10()
+ elif util.getstdoutsafeexec(vcscmd, ['-V'])[0].find('tla-1.1.') != -1:
+ vcssyn = '1.1'
+ vcsobj = Tla11()
+ elif util.getstdoutsafeexec(vcscmd, ['-V'])[0].find('tla-1.3.') != -1:
+ vcssyn = '1.3'
+ vcsobj = Tla13()
+ elif util.getstdoutsafeexec(vcscmd, ['-V'])[0].find('baz Bazaar version 1.4.') != -1:
+ vcssyn = 'baz1.4'
+ vcsobj = Baz14()
+ elif util.getstdoutsafeexec(vcscmd, ['-V'])[0].find('This is svk') != -1:
+ vcssyn = 'svk'
+ vcsobj = Svk()
+ else:
+ vcssyn = '1.3'
+ vcsobj = Tla13()
+ return vcssyn
+
+class Tla10:
+ tagging_method = 'tagging-method'
+ add = ['add-tag']
+ move = 'move-tag'
+ delete = ['delete-tag']
+ update = 'update --in-place .'
+ replay = 'replay --in-place .'
+ commit = 'commit'
+ importcmd = 'import'
+
+class Tla11:
+ tagging_method = 'id-tagging-method'
+ add = ['add']
+ move = 'move'
+ delete = ['delete']
+ update = 'update'
+ replay = 'replay'
+ commit = 'commit'
+ importcmd = 'import'
+
+class Tla13:
+ tagging_method = 'id-tagging-method'
+ add = ['add-id']
+ move = 'move-id'
+ delete = ['delete-id']
+ update = 'update'
+ replay = 'replay'
+ commit = 'commit'
+ importcmd = 'import'
+
+class Baz14:
+ tagging_method = 'id-tagging-method'
+ add = ['add-id']
+ move = 'move-id'
+ delete = ['delete-id']
+ update = 'update'
+ replay = 'replay'
+ commit = 'commit'
+ importcmd = 'import'
+
+class Darcs:
+ tagging_method = None
+ add = ['add', '--case-ok']
+ move = 'mv'
+ delete = None
+ update = 'pull'
+ replay = 'pull'
+ commit = 'record'
+
+class Hg:
+ tagging_method = None
+ add = ['add']
+ move = 'mv'
+ delete = None
+ update = 'pull'
+ replay = 'pull'
+ commit = 'commit'
+
+class Git:
+ tagging_method = None
+ add = ['add']
+ move = 'mv'
+ delete = ['rm', '-r']
+ update = 'checkout'
+ replay = None
+ commit = 'commit'
+
+class Svk:
+ tagging_method = None
+ add = ['add']
+ move = 'mv'
+ delete = ['rm']
+ update = 'pull'
+ replay = 'pull'
+ commit = 'commit'
+
+def cmd():
+ global vcsobj
+ getvcssyntax()
+ return vcsobj
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/vcs_support/init.py Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,75 @@
+# Copyright (C) 2003-2007 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+
+from optparse import OptionParser
+from vcs_support import util, commandver
+import sys
+
+def run(darcsdefault):
+ version = '1.1.4'
+
+ parser = OptionParser(usage="usage: %prog [options] vendor_source_dir",
+ version=version)
+ parser.add_option("-w", "--wc", dest="wc", default=".",
+ help="Set working copy to WC (defaults to current directory)", metavar="WC")
+ parser.add_option("-l", "--log", dest="changelog", metavar="FILE", default=None,
+ help="Get changelog text from FILE")
+ parser.add_option("-L", "--log-message", dest="logtext", metavar="TEXT",
+ default='', help="Log with TEXT")
+ parser.add_option("-s", "--summary", dest="summary", metavar="MSG",
+ default=None, help="Set log summary message to MSG, overriding the default")
+ parser.add_option("-v", "--verbose", action="store_true", dest="verbose",
+ default=False, help="Show more status information")
+ parser.add_option("-f", "--fs-changes-only", action="store_true",
+ dest="fsonly", default=False,
+ help="Disable interactivity and issue no add/rm/mv commands to VCS, use with -n")
+ parser.add_option("-n", "--no-commit", action="store_false", dest="docommit",
+ default=True, help="Do not commit the changes.")
+
+ (options, args) = parser.parse_args()
+ util.verbose = options.verbose
+
+ log = options.logtext + "\n"
+ if options.changelog:
+ fd = open(options.changelog, "r")
+ log += fd.read()
+ fd.close()
+
+ if len(args) != 1:
+ parser.error("Failed to specify a path to import.")
+
+ commandver.setscm(darcsdefault)
+
+ from vcs_support import vcs_wc, vcs_interact
+
+ wc = vcs_wc.wc(options.wc, verbose = options.verbose,
+ fsonly = options.fsonly)
+ if not wc.gettaggingmethod() in ['explicit', 'tagline']:
+ print "Working directory uses unsupported tagging method %s" % \
+ wc.gettaggingmethod()
+ sys.exit(1)
+
+
+ iobj = vcs_interact.interaction(wc, args[0], options.docommit, log = log,
+ verbose = options.verbose,
+ summary = options.summary)
+ try:
+ iobj.main()
+ finally:
+ iobj.cleanup()
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/vcs_support/util.py Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,172 @@
+# Copyright (C) 2003-2007 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+import os, sys, re
+
+nulldev = None
+verbose = 0
+
+class ExecProblem(Exception):
+ pass
+
+def mainexec(program, args = [], child_stdout = None,
+ child_stdin = None, child_stderr = None, wait = 1, closefds = []):
+ """Runs the program as a sub-process, passing to it args if specified.
+ The sub-process has its file descriptors adjusted as per the arguments.
+
+ If wait is 1, wait until the child exits, then return the result code from
+ os.waitpid().
+
+ If wait is 0, return the PID immediately."""
+ global verbose
+ def setfds(source, dest):
+ if source != None:
+ if hasattr(source, 'fileno'):
+ source = source.fileno()
+ os.dup2(source, dest)
+
+ pid = os.fork()
+ if not pid:
+ if verbose:
+ print "Running: ", program, args
+ setfds(child_stdin, 0)
+ setfds(child_stdout, 1)
+ setfds(child_stderr, 2)
+ for fd in closefds:
+ os.close(fd)
+ os.execvp(program, (program,) + tuple(args))
+ sys.exit(255)
+ else:
+ if wait:
+ return os.waitpid(pid, 0)[1]
+ else:
+ return pid
+
+def safeexec(program, args = [], child_stdout = None,
+ child_stdin = None, child_stderr = None,
+ expected = 0):
+ """Calls mainexec() with the appropriate arguments, and raises
+ an exception if the program died with a signal or returned an
+ error code other than expected. This function will always wait."""
+ result = mainexec(program, args, child_stdout, child_stdin, child_stderr)
+ return checkresult(result, expected)
+
+def getstdoutsafeexec(program, args, expected = 0):
+ pipes = os.pipe()
+ pid = mainexec(program, args, child_stdout = pipes[1], wait = 0)
+ os.close(pipes[1])
+ fd = os.fdopen(pipes[0], 'r')
+ retval = fd.readlines()
+ checkpid(pid, expected)
+ os.close(pipes[0])
+ return retval
+
+def silentsafeexec(program, args, expected = 0):
+ """Silently runs the specified program."""
+ null = getnull()
+ result = mainexec(program, args, null, null, null)
+ return checkresult(result, expected)
+
+def checkresult(result, expected):
+ info = []
+ if os.WIFSIGNALED(result):
+ info.append("got signal %d" % os.WTERMSIG(result))
+ if os.WIFEXITED(result):
+ info.append("exited with code %d" % os.WEXITSTATUS(result))
+ info = ",".join(info)
+ if not os.WIFEXITED(result):
+ raise ExecProblem, info
+ if os.WEXITSTATUS(result) != expected:
+ raise ExecProblem, info + " (expected exit code %d)" % expected
+ return result
+
+def checkpid(pid, expected):
+ return checkresult(os.waitpid(pid, 0)[1], expected)
+
+def getnull():
+ global nulldev
+ if not nulldev:
+ nulldev = open("/dev/null", "w+")
+ return nulldev
+
+def chdircmd(newdir, func, *args, **kwargs):
+ cwd = os.getcwd()
+ os.chdir(newdir)
+ try:
+ return apply(func, args, kwargs)
+ finally:
+ os.chdir(cwd)
+
+def maketree(path, addpath = None, ignore = [], res = None):
+ thisdir = os.listdir(path)
+ retval = []
+ others = []
+ if res == None:
+ res = [re.compile(x) for x in ignore]
+ for item in thisdir:
+ skip = 0
+ for retest in res:
+ if retest.search(item):
+ skip = 1
+ break
+ if skip:
+ continue
+ dirname = os.path.join(path, item)
+ if os.path.isdir(dirname) and not os.path.islink(dirname):
+ if addpath:
+ retval.append(os.path.join(addpath, item) + '/')
+ else:
+ retval.append(item + '/')
+ if addpath:
+ newaddpath = os.path.join(addpath, item)
+ else:
+ newaddpath = item
+ others.extend(maketree(dirname, newaddpath, res = res))
+ else:
+ if addpath:
+ retval.append(os.path.join(addpath, item))
+ else:
+ retval.append(item)
+ return sorttree(retval + others)
+
+def sorttree(srctree, filesfirst = False):
+ retval = []
+ dirs = [x for x in srctree if x.endswith('/')]
+ files = [x for x in srctree if not x.endswith('/')]
+ dirs.sort()
+ files.sort()
+ if filesfirst:
+ return files + dirs
+ else:
+ return dirs + files
+
+
+def copyfrom(srcdir, destdir):
+ pipes = os.pipe()
+ verbargs = []
+ #if verbose:
+ # verbargs.append('-v')
+ readerpid = chdircmd(srcdir, mainexec, "tar", ["-cSpf", "-", "."],
+ child_stdout = pipes[1], wait = 0,
+ closefds = [pipes[0]])
+ writerpid = chdircmd(destdir, mainexec, "tar", ["-xSpf", "-"] + verbargs,
+ child_stdin = pipes[0], wait = 0, closefds = [pipes[1]])
+ os.close(pipes[0])
+ os.close(pipes[1])
+ checkpid(readerpid, 0)
+ checkpid(writerpid, 0)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/vcs_support/vcs_interact.py Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,214 @@
+# Copyright (C) 2003-2007 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+import sys, os
+import util
+from commandver import isdarcs
+from tempfile import mkdtemp
+
+class interaction:
+ def __init__(self, wcobj, importdir, docommit, log = '', verbose = 0,
+ summary = None):
+ self.wcobj = wcobj
+ self.log = log
+ self.docommit = docommit
+ self.verb = verbose
+ self.summary = summary
+
+ if os.path.isdir(importdir):
+ self.importdir = os.path.abspath(importdir)
+ self.importfile = None
+ self.tmpdir = None
+
+ else: # Not a dir, try to unpack an archive.
+ self.importfile = os.path.abspath(importdir)
+ # mkdtemp returns an absolute path
+ self.importdir = mkdtemp("-vcs-load-dirs", ",,unpack-", "..")
+ self.tmpdir = self.importdir
+
+ try:
+ if self.verb:
+ print "Unpacking archive..."
+
+ if self.importfile.endswith(".tar.gz"):
+ util.chdircmd(self.importdir, util.safeexec, "tar",
+ ["-zxf", self.importfile])
+
+ elif self.importfile.endswith(".tar.bz2"):
+ util.chdircmd(self.importdir, util.safeexec, "tar",
+ ["-jxf", self.importfile])
+ elif self.importfile.endswith(".zip"):
+ util.chdircmd(self.importdir, util.safeexec, "unzip",
+ [self.importfile])
+ else:
+ raise IOError, "Unknown archive file type"
+
+ # Many tarballs expand into just one single directory.
+ # Check to see if that's the case.
+
+ dents = os.listdir(self.importdir)
+ if len(dents) == 1 and os.path.isdir(self.importdir + "/" +
+ dents[0]):
+ self.importdir = self.importdir + "/" + dents[0]
+ except:
+ self.cleanup()
+ raise
+
+ def cleanup(self):
+ if not (self.tmpdir is None):
+ util.safeexec("rm", ["-rf", self.tmpdir])
+ self.tmpdir = None
+
+ def updateimportfiles(self):
+ if self.verb:
+ print "Scanning upstream tree..."
+ self.importfiles = util.maketree(self.importdir)
+
+ def updatewcfiles(self):
+ if self.verb:
+ print "Scanning working copy tree..."
+ self.wcfiles = self.wcobj.gettree()
+
+ def update(self):
+ self.updatewcfiles()
+ self.updatechangedfiles()
+
+ def updatechangedfiles(self):
+ if self.verb:
+ print "Calculating changes..."
+ wcfilehash = {}
+ for x in self.wcfiles:
+ wcfilehash[x] = 1
+ importfilehash = {}
+ for x in self.importfiles:
+ importfilehash[x] = 1
+
+ self.addedfiles = [x for x in self.importfiles if not wcfilehash.has_key(x)]
+ self.deletedfiles = [x for x in self.wcfiles if not importfilehash.has_key(x)]
+
+
+ def main(self):
+ def readloop():
+ for command in sys.stdin.readline().strip().split(','):
+ command = command.strip()
+ if command == 'q':
+ return 0
+ if command == 'r':
+ return 1
+ src, dest = command.split(' ')
+ src = int(src, 16)
+ dest = int(dest, 16)
+ self.mv(self.deletedfiles[src], self.addedfiles[dest])
+ return 1
+
+ self.updateimportfiles()
+ needsupdate = 1
+
+ while 1:
+ self.update()
+ if self.wcobj.fsonly:
+ # Don't show this interface if we're not talking to the VCS
+ break
+ if not (len(self.addedfiles) and len(self.deletedfiles)):
+ # Just ran update; don't do it again.
+ needsupdate = 0
+ break
+
+ counter = 0
+ print "%3s %-35s %3s %-35s" % ('Num', 'Source Files', 'Num',
+ 'Destination Files',)
+ print "%s %s %s %s" % ("-" * 3, "-" * 35, "-" * 3, "-" * 35)
+ while counter < max(len(self.addedfiles), len(self.deletedfiles)):
+ addfile = ''
+ delfile = ''
+ if counter < len(self.addedfiles):
+ addfile = self.addedfiles[counter]
+ if counter < len(self.deletedfiles):
+ delfile = self.deletedfiles[counter]
+ print "%3x %-35s %3x %-35s" % (counter, delfile, counter, addfile)
+ counter += 1
+ print "Syntax: src dest [,src dest [,...]] to move, q to accept, r to redraw:"
+ sys.stdout.write("Command: ")
+ sys.stdout.flush()
+ try:
+ if not readloop():
+ break
+ except ValueError:
+ print "Error handling input; please try again."
+ except IndexError:
+ print "Error handling input; please try again."
+
+ self.catchup(needsupdate)
+
+ def catchup(self, needsupdate = 1):
+ if self.verb:
+ print " *** Processing changes."
+ if needsupdate:
+ self.update()
+ if self.verb:
+ print "Deleting %d files" % len(self.deletedfiles)
+ if isdarcs():
+ for file in util.sorttree(self.deletedfiles, filesfirst = True):
+ self.delfile(file)
+ else:
+ for file in self.deletedfiles:
+ self.delfile(file)
+
+ if self.verb:
+ print "Copying upstream directory to working copy..."
+ util.copyfrom(self.importdir, self.wcobj.wcpath)
+
+ if self.verb:
+ print "Adding %d files" % len(self.addedfiles)
+ self.addedfiles.sort() # Make sure top-level dirs added before files
+ for file in self.addedfiles:
+ self.addfile(file)
+ self.writelog()
+ if self.docommit:
+ self.wcobj.commit()
+
+ def writelog(self):
+ logtext = ""
+ if not (self.importfile is None):
+ importname = self.importfile
+ else:
+ importname = self.importdir
+
+ if self.summary:
+ summary = self.summary
+ else:
+ summary = "Imported %s" % os.path.basename(importname)
+ logtext += "Imported %s\ninto %s\n\n" % \
+ (os.path.basename(importname),
+ self.wcobj.gettreeversion())
+ logtext += self.log
+ self.wcobj.makelog(summary, logtext)
+
+
+ def addfile(self, file):
+ self.wcobj.addtag(file)
+
+ def delfile(self, file):
+ self.wcobj.deltag(file)
+ self.wcobj.delfile(file)
+
+
+ def mv(self, src, dest):
+ print "%s -> %s" % (src, dest)
+ self.wcobj.movefile(src, dest)
+ self.wcobj.movetag(src, dest)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/vcs-load-dirs/vcs_support/vcs_wc.py Tue May 12 15:52:53 2009 +0200
@@ -0,0 +1,215 @@
+# Copyright (C) 2003-2007 John Goerzen
+# <jgoerzen@complete.org>
+#
+# 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
+
+import util
+import os.path
+from commandver import cmd, isdarcs, issvk, isgit, ishg, vcscmd
+
+class wc:
+ """Object for a working copy."""
+
+ def __init__(self, wcpath, verbose = 0, fsonly = 0):
+ self.wcpath = os.path.abspath(wcpath)
+ self.verb = verbose
+ self.fsonly = fsonly
+ if not self.wcverify():
+ raise Exception, "%s is not a tla working copy" % self.wcpath
+
+ def gettreeversion(self):
+ if isdarcs():
+ #util.chdircmd(self.wcpath, util.getstdoutsafeexec, "darcs",
+ # ['check'])
+ return "Darcs repository"
+ elif ishg():
+ return "Mercurial repository"
+ elif issvk():
+ return "Svk repository"
+ elif isgit():
+ return "Git repository"
+ else:
+ return util.chdircmd(self.wcpath, util.getstdoutsafeexec, vcscmd,
+ ['tree-version'])[0].strip()
+
+ def wcverify(self):
+ try:
+ self.gettreeversion()
+ except util.ExecProblem:
+ return 0
+ return 1
+
+ def gettaggingmethod(self):
+ if isdarcs() or isgit() or ishg():
+ return 'explicit'
+ else:
+ return util.chdircmd(self.wcpath, util.getstdoutsafeexec, vcscmd,
+ [cmd().tagging_method])[0].strip()
+
+ def gettree(self):
+ return util.maketree(self.wcpath,
+ ignore = [r'(^(\{arch\}$|,,|\.hg|\.hgtags|\.hgignore|\.git|_darcs|\.arch-ids$|\.arch-inventory$|\+\+)|/\.arch-ids/)'])
+
+ def addtag(self, file):
+ if self.verb:
+ print "Adding %s" % file
+ if (file[-1] == '/') and \
+ (not os.path.exists(os.path.join(self.wcpath,
+ file[:-1]))):
+ try:
+ print "addtag: making dir %s" % file[:-1]
+ os.makedirs(os.path.join(self.wcpath, file[:-1]))
+ except:
+ raise
+ file = self.slashstrip(file)
+ isdir = os.path.isdir(os.path.join(self.wcpath, file))
+ if (not self.fsonly) and \
+ (not ishg()) and ((not isdarcs()) or isdir):
+ # Darcs will see adds later, but we need to add dirs
+ # now so darcs mv will work.
+ #
+ # Mercurial will see adds later, and doesn't track directories,
+ # so we don't do anything with it.
+ util.chdircmd(self.wcpath, util.safeexec, vcscmd,
+ cmd().add + [file])
+
+ def movetag(self, src, dest):
+ if self.verb:
+ print "Moving %s to %s" % (src, dest)
+ if src[-1] == '/' \
+ and dest[-1] == '/' \
+ and ((not isdarcs()) and (not isgit()) and (not ishg())):
+ # Dir to dir -- darcs mv will catch it already.
+ # Git doesn't do rename recording, so don't worry about it?
+ return
+ src, dest = self.slashstrip(src, dest)
+ if not self.fsonly:
+ util.chdircmd(self.wcpath, util.safeexec, vcscmd,
+ [cmd().move, src, dest])
+
+ def movefile(self, src, dest):
+ if self.verb:
+ print "Moving file %s to %s" % (src, dest)
+ src, dest = self.slashstrip(src, dest)
+
+ def doit():
+ destdir = os.path.dirname(dest)
+ if (not os.path.exists(destdir)) and destdir != '':
+ self.makedirs(destdir)
+ if self.fsonly or \
+ (not isdarcs() and (not isgit()) and (not ishg())):
+ # Darcs, hg, and git actually do this when they move the tag
+ os.rename(src, dest)
+
+ util.chdircmd(self.wcpath, doit)
+
+ def delfile(self, file):
+ if self.verb:
+ print "Deleting file %s" % file
+ fullfile = os.path.join(self.wcpath, file)
+ if os.path.isfile(fullfile):
+ os.unlink(fullfile)
+ else:
+ util.safeexec("rm", ['-rf', fullfile])
+
+ def deltag(self, file):
+ if (not self.fsonly) and \
+ ((not isdarcs()) and (not ishg())):
+ if self.verb:
+ print "Deleting %s" % file
+ if os.path.islink(os.path.join(self.wcpath,file)) or os.path.exists(os.path.join(self.wcpath, file)):
+ util.chdircmd(self.wcpath, util.safeexec, vcscmd,
+ cmd().delete + [file])
+
+ def makelog(self, summary, logtext):
+ self.summary = summary
+ self.logtext = logtext
+ if ishg() or isgit() or isdarcs():
+ logfn = self.wcpath + "/../,,vcslog"
+ else:
+ logfn = util.chdircmd(self.wcpath, util.getstdoutsafeexec, vcscmd,
+ ['make-log'])[0].strip()
+
+ self.logfn = os.path.abspath(logfn)
+
+ fd = open(self.logfn, "w")
+ if isgit():
+ fd.write("%s\n\n" % summary)
+ if ishg():
+ fd.write("%s\n" % summary)
+ elif not (isdarcs() or ishg()):
+ fd.write("Summary: %s\n" % summary)
+ fd.write("Keywords: \n\n")
+ fd.write(logtext)
+ print "LOGTEXT", logtext
+ fd.close()
+
+
+ def commit(self):
+ if self.verb:
+ print "Committing changes"
+ if isdarcs():
+ util.chdircmd(self.wcpath, util.safeexec, vcscmd,
+ [cmd().commit, "-l", "-a", "-m", self.summary,
+ "--logfile", self.logfn,
+ "--delete-logfile"])
+ elif isgit():
+ util.chdircmd(self.wcpath, util.safeexec, vcscmd,
+ [cmd().commit, "-a", "-F", self.logfn])
+ os.unlink(self.logfn)
+ elif ishg():
+ util.chdircmd(self.wcpath, util.safeexec, vcscmd,
+ [cmd().commit, "-A", "-l", self.logfn])
+ os.unlink(self.logfn)
+ else:
+ if len(util.chdircmd(self.wcpath, util.getstdoutsafeexec, vcscmd, ['logs']))==0:
+ util.chdircmd(self.wcpath, util.safeexec, vcscmd, [cmd().importcmd])
+ else:
+ util.chdircmd(self.wcpath, util.safeexec, vcscmd, [cmd().commit])
+
+ def slashstrip(self, *args):
+ retval = []
+ for item in args:
+ if not len(item):
+ retval.append(item)
+ if item[-1] == '/':
+ item = item[:-1]
+ retval.append(item)
+ if len(args) == 1:
+ return retval[0]
+ return retval
+
+
+ def makedirs(self, name, mode=0777):
+ """makedirs(path [, mode=0777])
+
+ Super-mkdir; create a leaf directory and all intermediate ones.
+ Works like mkdir, except that any intermediate path segment (not
+ just the rightmost) will be created if it does not exist. This is
+ recursive.
+
+ (Modified from Python source)
+
+ """
+ head, tail = os.path.split(name)
+ if not tail:
+ head, tail = os.path.split(head)
+ if head and tail and not os.path.exists(head):
+ self.makedirs(head, mode)
+ if self.verb:
+ print "Created directory", name
+ os.mkdir(name, mode)
+ self.addtag(name)
+