From 4bf41ac9f152a8489aa51214ee06ceef43440ccb Mon Sep 17 00:00:00 2001 From: Pawel Solyga Date: Tue, 12 May 2009 15:52:53 +0200 Subject: [PATCH] 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 --- thirdparty/vcs-load-dirs/COPYING | 342 +++++++++++++++++++++ thirdparty/vcs-load-dirs/baz_load_dirs | 20 ++ thirdparty/vcs-load-dirs/darcs_load_dirs | 25 ++ .../vcs-load-dirs/debian/baz-load-dirs.install | 2 + .../vcs-load-dirs/debian/baz-load-dirs.manpages | 1 + thirdparty/vcs-load-dirs/debian/changelog | 315 +++++++++++++++++++ thirdparty/vcs-load-dirs/debian/compat | 1 + thirdparty/vcs-load-dirs/debian/control | 99 ++++++ thirdparty/vcs-load-dirs/debian/copyright | 26 ++ .../vcs-load-dirs/debian/darcs-load-dirs.install | 2 + .../vcs-load-dirs/debian/darcs-load-dirs.manpages | 1 + thirdparty/vcs-load-dirs/debian/dirs | 2 + thirdparty/vcs-load-dirs/debian/docs | 0 .../vcs-load-dirs/debian/git-load-dirs.install | 2 + .../vcs-load-dirs/debian/git-load-dirs.manpages | 1 + .../vcs-load-dirs/debian/hg-load-dirs.install | 2 + .../vcs-load-dirs/debian/hg-load-dirs.manpages | 1 + .../vcs-load-dirs/debian/load-dirs-common.install | 2 + thirdparty/vcs-load-dirs/debian/pycompat | 1 + thirdparty/vcs-load-dirs/debian/rules | 104 +++++++ .../vcs-load-dirs/debian/svk-load-dirs.install | 2 + .../vcs-load-dirs/debian/svk-load-dirs.manpages | 1 + .../vcs-load-dirs/debian/tla-load-dirs.install | 2 + .../vcs-load-dirs/debian/tla-load-dirs.manpages | 1 + thirdparty/vcs-load-dirs/docs/Makefile | 62 ++++ thirdparty/vcs-load-dirs/docs/sgml-common/COPYING | 342 +++++++++++++++++++++ .../vcs-load-dirs/docs/sgml-common/COPYRIGHT | 39 +++ .../vcs-load-dirs/docs/sgml-common/ChangeLog | 265 ++++++++++++++++ .../vcs-load-dirs/docs/sgml-common/Makefile.common | 229 ++++++++++++++ .../vcs-load-dirs/docs/sgml-common/SConstruct | 208 +++++++++++++ thirdparty/vcs-load-dirs/docs/sgml-common/ps2epsi | 77 +++++ thirdparty/vcs-load-dirs/docs/vcs_load_dirs.sgml | 314 +++++++++++++++++++ thirdparty/vcs-load-dirs/git_load_dirs | 25 ++ thirdparty/vcs-load-dirs/hg_load_dirs | 25 ++ thirdparty/vcs-load-dirs/setup.py | 29 ++ thirdparty/vcs-load-dirs/svk_load_dirs | 20 ++ thirdparty/vcs-load-dirs/tla_load_dirs | 20 ++ thirdparty/vcs-load-dirs/vcs_support/__init__.py | 0 thirdparty/vcs-load-dirs/vcs_support/commandver.py | 179 +++++++++++ thirdparty/vcs-load-dirs/vcs_support/init.py | 75 +++++ thirdparty/vcs-load-dirs/vcs_support/util.py | 172 +++++++++++ .../vcs-load-dirs/vcs_support/vcs_interact.py | 214 +++++++++++++ thirdparty/vcs-load-dirs/vcs_support/vcs_wc.py | 215 +++++++++++++ 43 files changed, 3465 insertions(+) create mode 100644 thirdparty/vcs-load-dirs/COPYING create mode 100755 thirdparty/vcs-load-dirs/baz_load_dirs create mode 100755 thirdparty/vcs-load-dirs/darcs_load_dirs create mode 100644 thirdparty/vcs-load-dirs/debian/baz-load-dirs.install create mode 100644 thirdparty/vcs-load-dirs/debian/baz-load-dirs.manpages create mode 100644 thirdparty/vcs-load-dirs/debian/changelog create mode 100644 thirdparty/vcs-load-dirs/debian/compat create mode 100644 thirdparty/vcs-load-dirs/debian/control create mode 100644 thirdparty/vcs-load-dirs/debian/copyright create mode 100644 thirdparty/vcs-load-dirs/debian/darcs-load-dirs.install create mode 100644 thirdparty/vcs-load-dirs/debian/darcs-load-dirs.manpages create mode 100644 thirdparty/vcs-load-dirs/debian/dirs create mode 100644 thirdparty/vcs-load-dirs/debian/docs create mode 100644 thirdparty/vcs-load-dirs/debian/git-load-dirs.install create mode 100644 thirdparty/vcs-load-dirs/debian/git-load-dirs.manpages create mode 100644 thirdparty/vcs-load-dirs/debian/hg-load-dirs.install create mode 100644 thirdparty/vcs-load-dirs/debian/hg-load-dirs.manpages create mode 100644 thirdparty/vcs-load-dirs/debian/load-dirs-common.install create mode 100644 thirdparty/vcs-load-dirs/debian/pycompat create mode 100755 thirdparty/vcs-load-dirs/debian/rules create mode 100644 thirdparty/vcs-load-dirs/debian/svk-load-dirs.install create mode 100644 thirdparty/vcs-load-dirs/debian/svk-load-dirs.manpages create mode 100644 thirdparty/vcs-load-dirs/debian/tla-load-dirs.install create mode 100644 thirdparty/vcs-load-dirs/debian/tla-load-dirs.manpages create mode 100644 thirdparty/vcs-load-dirs/docs/Makefile create mode 100644 thirdparty/vcs-load-dirs/docs/sgml-common/COPYING create mode 100644 thirdparty/vcs-load-dirs/docs/sgml-common/COPYRIGHT create mode 100644 thirdparty/vcs-load-dirs/docs/sgml-common/ChangeLog create mode 100644 thirdparty/vcs-load-dirs/docs/sgml-common/Makefile.common create mode 100644 thirdparty/vcs-load-dirs/docs/sgml-common/SConstruct create mode 100644 thirdparty/vcs-load-dirs/docs/sgml-common/ps2epsi create mode 100644 thirdparty/vcs-load-dirs/docs/vcs_load_dirs.sgml create mode 100755 thirdparty/vcs-load-dirs/git_load_dirs create mode 100755 thirdparty/vcs-load-dirs/hg_load_dirs create mode 100644 thirdparty/vcs-load-dirs/setup.py create mode 100755 thirdparty/vcs-load-dirs/svk_load_dirs create mode 100755 thirdparty/vcs-load-dirs/tla_load_dirs create mode 100644 thirdparty/vcs-load-dirs/vcs_support/__init__.py create mode 100644 thirdparty/vcs-load-dirs/vcs_support/commandver.py create mode 100644 thirdparty/vcs-load-dirs/vcs_support/init.py create mode 100644 thirdparty/vcs-load-dirs/vcs_support/util.py create mode 100644 thirdparty/vcs-load-dirs/vcs_support/vcs_interact.py create mode 100644 thirdparty/vcs-load-dirs/vcs_support/vcs_wc.py diff --git a/thirdparty/vcs-load-dirs/COPYING b/thirdparty/vcs-load-dirs/COPYING new file mode 100644 index 00000000..bef1b9a1 --- /dev/null +++ b/thirdparty/vcs-load-dirs/COPYING @@ -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. + + + Copyright (C) + + 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. + + , 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. + diff --git a/thirdparty/vcs-load-dirs/baz_load_dirs b/thirdparty/vcs-load-dirs/baz_load_dirs new file mode 100755 index 00000000..bd9935d3 --- /dev/null +++ b/thirdparty/vcs-load-dirs/baz_load_dirs @@ -0,0 +1,20 @@ +#!/usr/bin/python +# Copyright (C) 2005-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 + +from vcs_support import init +init.run("baz") diff --git a/thirdparty/vcs-load-dirs/darcs_load_dirs b/thirdparty/vcs-load-dirs/darcs_load_dirs new file mode 100755 index 00000000..3b382667 --- /dev/null +++ b/thirdparty/vcs-load-dirs/darcs_load_dirs @@ -0,0 +1,25 @@ +#!/usr/bin/python + +### REMEMBER TO UPDATE VERSION IN vcs_support/init.py + +# 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 + + +from vcs_support import init + +init.run("darcs") diff --git a/thirdparty/vcs-load-dirs/debian/baz-load-dirs.install b/thirdparty/vcs-load-dirs/debian/baz-load-dirs.install new file mode 100644 index 00000000..86aead35 --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/baz-load-dirs.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/baz_load_dirs usr/bin + diff --git a/thirdparty/vcs-load-dirs/debian/baz-load-dirs.manpages b/thirdparty/vcs-load-dirs/debian/baz-load-dirs.manpages new file mode 100644 index 00000000..eca4671b --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/baz-load-dirs.manpages @@ -0,0 +1 @@ +docs/baz_load_dirs.1 diff --git a/thirdparty/vcs-load-dirs/debian/changelog b/thirdparty/vcs-load-dirs/debian/changelog new file mode 100644 index 00000000..5ba3daaa --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/changelog @@ -0,0 +1,315 @@ +vcs-load-dirs (1.1.6) unstable; urgency=low + + * Added Vcs-* and Homepage control lines. + + -- John Goerzen 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Tue, 31 May 2005 06:00:45 -0500 + +tla-load-dirs (1.0.21) unstable; urgency=low + + * No longer run "darcs check". + + -- John Goerzen 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 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 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 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 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 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 Sun, 24 Oct 2004 17:02:04 -0500 + +tla-load-dirs (1.0.14) unstable; urgency=low + + * Added darcs_load_dirs. + + -- John Goerzen 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 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 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 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 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 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 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 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 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 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 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 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 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 Wed, 3 Sep 2003 11:43:12 -0500 + +tla-load-dirs (1.0.0) unstable; urgency=low + + * Initial Release. Closes: #208463. + + -- John Goerzen Tue, 2 Sep 2003 20:10:45 -0500 + diff --git a/thirdparty/vcs-load-dirs/debian/compat b/thirdparty/vcs-load-dirs/debian/compat new file mode 100644 index 00000000..b8626c4c --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/compat @@ -0,0 +1 @@ +4 diff --git a/thirdparty/vcs-load-dirs/debian/control b/thirdparty/vcs-load-dirs/debian/control new file mode 100644 index 00000000..c181053f --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/control @@ -0,0 +1,99 @@ +Source: vcs-load-dirs +Section: devel +Priority: optional +Maintainer: John Goerzen +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. + diff --git a/thirdparty/vcs-load-dirs/debian/copyright b/thirdparty/vcs-load-dirs/debian/copyright new file mode 100644 index 00000000..18f06df7 --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/copyright @@ -0,0 +1,26 @@ +This package was debianized by John Goerzen 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 + +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 diff --git a/thirdparty/vcs-load-dirs/debian/darcs-load-dirs.install b/thirdparty/vcs-load-dirs/debian/darcs-load-dirs.install new file mode 100644 index 00000000..ba0eb552 --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/darcs-load-dirs.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/darcs_load_dirs usr/bin + diff --git a/thirdparty/vcs-load-dirs/debian/darcs-load-dirs.manpages b/thirdparty/vcs-load-dirs/debian/darcs-load-dirs.manpages new file mode 100644 index 00000000..717c7636 --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/darcs-load-dirs.manpages @@ -0,0 +1 @@ +docs/darcs_load_dirs.1 diff --git a/thirdparty/vcs-load-dirs/debian/dirs b/thirdparty/vcs-load-dirs/debian/dirs new file mode 100644 index 00000000..527b78f2 --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/dirs @@ -0,0 +1,2 @@ +usr/bin +usr/lib diff --git a/thirdparty/vcs-load-dirs/debian/docs b/thirdparty/vcs-load-dirs/debian/docs new file mode 100644 index 00000000..e69de29b diff --git a/thirdparty/vcs-load-dirs/debian/git-load-dirs.install b/thirdparty/vcs-load-dirs/debian/git-load-dirs.install new file mode 100644 index 00000000..2229f916 --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/git-load-dirs.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/git_load_dirs usr/bin + diff --git a/thirdparty/vcs-load-dirs/debian/git-load-dirs.manpages b/thirdparty/vcs-load-dirs/debian/git-load-dirs.manpages new file mode 100644 index 00000000..ebd26f1b --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/git-load-dirs.manpages @@ -0,0 +1 @@ +docs/git_load_dirs.1 diff --git a/thirdparty/vcs-load-dirs/debian/hg-load-dirs.install b/thirdparty/vcs-load-dirs/debian/hg-load-dirs.install new file mode 100644 index 00000000..9ac0a7ac --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/hg-load-dirs.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/hg_load_dirs usr/bin + diff --git a/thirdparty/vcs-load-dirs/debian/hg-load-dirs.manpages b/thirdparty/vcs-load-dirs/debian/hg-load-dirs.manpages new file mode 100644 index 00000000..e530750c --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/hg-load-dirs.manpages @@ -0,0 +1 @@ +docs/hg_load_dirs.1 diff --git a/thirdparty/vcs-load-dirs/debian/load-dirs-common.install b/thirdparty/vcs-load-dirs/debian/load-dirs-common.install new file mode 100644 index 00000000..a07b2af4 --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/load-dirs-common.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib usr + diff --git a/thirdparty/vcs-load-dirs/debian/pycompat b/thirdparty/vcs-load-dirs/debian/pycompat new file mode 100644 index 00000000..0cfbf088 --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/pycompat @@ -0,0 +1 @@ +2 diff --git a/thirdparty/vcs-load-dirs/debian/rules b/thirdparty/vcs-load-dirs/debian/rules new file mode 100755 index 00000000..3d3e809d --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/rules @@ -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 diff --git a/thirdparty/vcs-load-dirs/debian/svk-load-dirs.install b/thirdparty/vcs-load-dirs/debian/svk-load-dirs.install new file mode 100644 index 00000000..f4ff5d4f --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/svk-load-dirs.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/svk_load_dirs usr/bin + diff --git a/thirdparty/vcs-load-dirs/debian/svk-load-dirs.manpages b/thirdparty/vcs-load-dirs/debian/svk-load-dirs.manpages new file mode 100644 index 00000000..c1560858 --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/svk-load-dirs.manpages @@ -0,0 +1 @@ +docs/svk_load_dirs.1 diff --git a/thirdparty/vcs-load-dirs/debian/tla-load-dirs.install b/thirdparty/vcs-load-dirs/debian/tla-load-dirs.install new file mode 100644 index 00000000..fd43b999 --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/tla-load-dirs.install @@ -0,0 +1,2 @@ +debian/tmp/usr/bin/tla_load_dirs usr/bin + diff --git a/thirdparty/vcs-load-dirs/debian/tla-load-dirs.manpages b/thirdparty/vcs-load-dirs/debian/tla-load-dirs.manpages new file mode 100644 index 00000000..afd6f37f --- /dev/null +++ b/thirdparty/vcs-load-dirs/debian/tla-load-dirs.manpages @@ -0,0 +1 @@ +docs/tla_load_dirs.1 diff --git a/thirdparty/vcs-load-dirs/docs/Makefile b/thirdparty/vcs-load-dirs/docs/Makefile new file mode 100644 index 00000000..75927469 --- /dev/null +++ b/thirdparty/vcs-load-dirs/docs/Makefile @@ -0,0 +1,62 @@ +# 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 + +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 diff --git a/thirdparty/vcs-load-dirs/docs/sgml-common/COPYING b/thirdparty/vcs-load-dirs/docs/sgml-common/COPYING new file mode 100644 index 00000000..aea97718 --- /dev/null +++ b/thirdparty/vcs-load-dirs/docs/sgml-common/COPYING @@ -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. + + + Copyright (C) + + 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. + + , 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 diff --git a/thirdparty/vcs-load-dirs/docs/sgml-common/COPYRIGHT b/thirdparty/vcs-load-dirs/docs/sgml-common/COPYRIGHT new file mode 100644 index 00000000..8b3d11f1 --- /dev/null +++ b/thirdparty/vcs-load-dirs/docs/sgml-common/COPYRIGHT @@ -0,0 +1,39 @@ +Copyright for all code except ps2epsi +------------------------------------- +# Copyright (C) 2002, 2003 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 + +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 diff --git a/thirdparty/vcs-load-dirs/docs/sgml-common/ChangeLog b/thirdparty/vcs-load-dirs/docs/sgml-common/ChangeLog new file mode 100644 index 00000000..d193d6f8 --- /dev/null +++ b/thirdparty/vcs-load-dirs/docs/sgml-common/ChangeLog @@ -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 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 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 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 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 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 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 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 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 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 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 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 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 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 patch-7 + + Summary: + Checkpointing + Revision: + sgml-common--head--1.0--patch-7 + + + modified files: + SConstruct + + +2004-02-02 19:18:40 GMT John Goerzen 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 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 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 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 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 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 base-0 + + Summary: + initial import + Revision: + sgml-common--head--1.0--base-0 + + + (automatically generated log message) + + new files: + COPYING COPYRIGHT Makefile.common ps2epsi + + diff --git a/thirdparty/vcs-load-dirs/docs/sgml-common/Makefile.common b/thirdparty/vcs-load-dirs/docs/sgml-common/Makefile.common new file mode 100644 index 00000000..4850c1be --- /dev/null +++ b/thirdparty/vcs-load-dirs/docs/sgml-common/Makefile.common @@ -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 +# +# +# 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) + diff --git a/thirdparty/vcs-load-dirs/docs/sgml-common/SConstruct b/thirdparty/vcs-load-dirs/docs/sgml-common/SConstruct new file mode 100644 index 00000000..fbf34179 --- /dev/null +++ b/thirdparty/vcs-load-dirs/docs/sgml-common/SConstruct @@ -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']+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) diff --git a/thirdparty/vcs-load-dirs/docs/sgml-common/ps2epsi b/thirdparty/vcs-load-dirs/docs/sgml-common/ps2epsi new file mode 100644 index 00000000..f7216d62 --- /dev/null +++ b/thirdparty/vcs-load-dirs/docs/sgml-common/ps2epsi @@ -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 diff --git a/thirdparty/vcs-load-dirs/docs/vcs_load_dirs.sgml b/thirdparty/vcs-load-dirs/docs/vcs_load_dirs.sgml new file mode 100644 index 00000000..f1c8a64c --- /dev/null +++ b/thirdparty/vcs-load-dirs/docs/vcs_load_dirs.sgml @@ -0,0 +1,314 @@ +vcs_load_dirs"> +]> + + + + vcs_load_dirs Manual + + + +
jgoerzen@complete.org
+ JohnGoerzen +
+ + + vcs_load_dirs + 1 + John Goerzen + + + + vcs_load_dirs + Import upstream archives into tla, hg, darcs, or git and handle renames + + + + + vcs_load_dirs + + -wWC + --wc=WC + + + -lFILE + --log=FILE + + + -LTEXT + --log-message=TEXT + + + -sMSG + --summary=MSG + + + -v + --verbose + + + -n + --no-commit + + + -f + --fs-changes-only + + vendor_source_dir + + + + vcs_load_dirs + --version + + + + vcs_load_dirs + + --help + -h + + + + + + + Description + + &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. + + + For those familiar with Subversion, you will know that it has + a tool called svn_load_dirs. &vld; + is modeled after that program, but contains various + improvements for ease of use. + + + + + Usage + + 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. + + + Renamed Files + + &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. + + + You will be presented with a four-column listing. Those + columns, in order from left to right, represent: + + + File number for deleted file + + File name of deleted file + + File number of added file + + File name of added file + + + + 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. + + + 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. + + + If you want to rename several files at once, enter your + rename commands separated by commas. For instance, "5 1b, 6 + 1c". + + + + + + Options + + + -h + --help + Displays a brief summary of the available + options and exits. + + + + -lFILE + --log=FILE + + Add the contents of FILE to + the end of the log message automatically generated by + &vld; for a commit/record. + + + + + -LTEXT + --log-message=TEXT + + Add the TEXT specified on the + command line to the log message. + + + + + -sMSG + --summary=MSG + + + Sets the log summary line to the + MSG 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. + + + + + -n + --no-commit + + Do not commit changes to the target VCS. + + + + + -f + --fs-changes-only + + 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. + + + + + -v + --verbose + 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. + + + + + --version + Causes &vld; to print its version number and + exit. + + + + + -wWC + --wc=WC + + + Explicitly set the working copy directory to + WC. If not specified, + defaults to the current working directory. + + + + + + + Copyright + &vld;, and this manual, are Copyright © 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 + + + + + Author + &vld;, its libraries, documentation, and all included files, except where + noted, was written by John Goerzen jgoerzen@complete.org and + copyright is held as stated in the COPYRIGHT section. + + + + The homepage for &vld; is + + + + This package may be downloaded from + . + darcs users may also obtain the latest version with: + +$ darcs get --partial http://darcs.complete.org/vcs-load-dirs + + + + + + See Also + + tla(1), + darcs(1), + hg(1), + git(1), + tla-buildpackage(1), + darcs-buildpackage(1), + hg-buildpackage(1). + + +
+
+ + diff --git a/thirdparty/vcs-load-dirs/git_load_dirs b/thirdparty/vcs-load-dirs/git_load_dirs new file mode 100755 index 00000000..8fa41c9f --- /dev/null +++ b/thirdparty/vcs-load-dirs/git_load_dirs @@ -0,0 +1,25 @@ +#!/usr/bin/python + +### REMEMBER TO UPDATE VERSION IN vcs_support/init.py + +# Copyright (C) 2006-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 + + +from vcs_support import init + +init.run("git") diff --git a/thirdparty/vcs-load-dirs/hg_load_dirs b/thirdparty/vcs-load-dirs/hg_load_dirs new file mode 100755 index 00000000..a7db9708 --- /dev/null +++ b/thirdparty/vcs-load-dirs/hg_load_dirs @@ -0,0 +1,25 @@ +#!/usr/bin/python + +### REMEMBER TO UPDATE VERSION IN vcs_support/init.py + +# 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 + + +from vcs_support import init + +init.run("hg") diff --git a/thirdparty/vcs-load-dirs/setup.py b/thirdparty/vcs-load-dirs/setup.py new file mode 100644 index 00000000..2954058b --- /dev/null +++ b/thirdparty/vcs-load-dirs/setup.py @@ -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" +) + diff --git a/thirdparty/vcs-load-dirs/svk_load_dirs b/thirdparty/vcs-load-dirs/svk_load_dirs new file mode 100755 index 00000000..8d25c584 --- /dev/null +++ b/thirdparty/vcs-load-dirs/svk_load_dirs @@ -0,0 +1,20 @@ +#!/usr/bin/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 + +from vcs_support import init +init.run("svk") diff --git a/thirdparty/vcs-load-dirs/tla_load_dirs b/thirdparty/vcs-load-dirs/tla_load_dirs new file mode 100755 index 00000000..58cc51a9 --- /dev/null +++ b/thirdparty/vcs-load-dirs/tla_load_dirs @@ -0,0 +1,20 @@ +#!/usr/bin/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 + +from vcs_support import init +init.run("tla") diff --git a/thirdparty/vcs-load-dirs/vcs_support/__init__.py b/thirdparty/vcs-load-dirs/vcs_support/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/thirdparty/vcs-load-dirs/vcs_support/commandver.py b/thirdparty/vcs-load-dirs/vcs_support/commandver.py new file mode 100644 index 00000000..db7ca803 --- /dev/null +++ b/thirdparty/vcs-load-dirs/vcs_support/commandver.py @@ -0,0 +1,179 @@ +# 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 + +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 diff --git a/thirdparty/vcs-load-dirs/vcs_support/init.py b/thirdparty/vcs-load-dirs/vcs_support/init.py new file mode 100644 index 00000000..dd62fd29 --- /dev/null +++ b/thirdparty/vcs-load-dirs/vcs_support/init.py @@ -0,0 +1,75 @@ +# 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 + + +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() + diff --git a/thirdparty/vcs-load-dirs/vcs_support/util.py b/thirdparty/vcs-load-dirs/vcs_support/util.py new file mode 100644 index 00000000..9c6702a6 --- /dev/null +++ b/thirdparty/vcs-load-dirs/vcs_support/util.py @@ -0,0 +1,172 @@ +# 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 + +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) + diff --git a/thirdparty/vcs-load-dirs/vcs_support/vcs_interact.py b/thirdparty/vcs-load-dirs/vcs_support/vcs_interact.py new file mode 100644 index 00000000..f3da8800 --- /dev/null +++ b/thirdparty/vcs-load-dirs/vcs_support/vcs_interact.py @@ -0,0 +1,214 @@ +# 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 + +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) + diff --git a/thirdparty/vcs-load-dirs/vcs_support/vcs_wc.py b/thirdparty/vcs-load-dirs/vcs_support/vcs_wc.py new file mode 100644 index 00000000..f59d6247 --- /dev/null +++ b/thirdparty/vcs-load-dirs/vcs_support/vcs_wc.py @@ -0,0 +1,215 @@ +# 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 + +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) + -- 2.11.4.GIT