diff --git a/gource.bat b/gource.bat new file mode 100644 index 000000000..b5fcf7e68 --- /dev/null +++ b/gource.bat @@ -0,0 +1,3 @@ +@echo off +cd gource +gource -f -a 1 -s 0.01 -t 100000 --colour-images --max-file-lag 35 --title MyGuide --user-scale 1.67 --max-user-speed 725 --filename-time 11 -title Chimera --user-friction 2.5 --padding 1.2 --user-scale 1.25 --filename-time 2 --bloom-intensity 0.1 --bloom-multiplier 3 --hide filenames,dirnames \ No newline at end of file diff --git a/gource/COPYING.txt b/gource/COPYING.txt new file mode 100644 index 000000000..94a9ed024 --- /dev/null +++ b/gource/COPYING.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. 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 +them 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 prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. 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. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey 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; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If 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 convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + 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. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +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. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + 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 +state 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 3 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, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program 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, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU 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 Lesser General +Public License instead of this License. But first, please read +. diff --git a/gource/ChangeLog.txt b/gource/ChangeLog.txt new file mode 100644 index 000000000..eed47ea16 --- /dev/null +++ b/gource/ChangeLog.txt @@ -0,0 +1,298 @@ +0.51: + * Fixed --font-file relative path handling. + * Fixed a bug in resolving the repository root directory from a relative path. + +0.50: + * Right mouse button rotation now pivots around the camera. + * Added --font-file option. + * Added --enable-font-file option to configure. + * Added --no-time-travel option (Lars Schmertmann). + * Added --dir-name-position option (Lars Schmertmann). + * Added --file-extension-fallback option (Lars Schmertmann). + * Added --user-show-filter option (Victor Lopez). + * Added --disable-input option (Joey Parrish). + * Added --loop-delay-seconds option (Joey Parrish). + * Added --font-scale option. + * Added filename, dirname and user font size options (Carl Colena). + * Added workaround for FFMpeg error parsing Gource PPM video output. + * Fixed a bug in the Mercurial log parser that caused changes to be missed. + * Fixed file removal being cancelled by an action with an earlier timestamp. + * Fixed a bug in the log file format detection that could result in the wrong + first entry being displayed for a custom log. + * Fixed a bug where automatically cycling through a config with multiple + repositories reset settings to their defaults. + +0.49: + * Fixed compatibility with GLM 0.9.9.0. + +0.48: + * Can now generate logs from git sub module directories. + +0.47: + * Fixed low mouse movement speed with some mice while repositioning camera. + +0.46: + * Added --screen option. + +0.45: + * Added --window-position XxY option. + * Added --frameless option. + * Added --file-show-filter REGEX option (swoogles). + * Added --filename-time and filename-colour options (gh2k). + * Improved handling of very low seconds-per-day values (malengrin). + * Fixed crash when SVN log lacks author information (obarthel). + * Additional git log command validation (cym13). + * Allow lower case hex colours in custom logs (HSorensen). + * Enabled STDOUT support with --output-stream '-' on Windows (circulosmeos). + * Now requires SDL 2 to build (deprecated SDL 1.2 support removed). + +0.44: + * Fixed crash when taking a screenshot with an odd resolution. + * Fixed type deduction compilation error with newer versions of GCC. + * Documentation improvements. + +0.43: + * Updated boost autoconf macros to fix multi-arch detection. + +0.42: + * Fixed bzr log command when no start date was specified (chrisf). + * Fixed hg log commit order when date range specified. + * Fixed hg log command line on Windows. + * Fixed parser bug in date range filtering code. + +0.41: + * Multi-monitor support using SDL 2.0 when available. + * SDL 1.2 support is deprecated. + * Full screen mode now uses desktop resolution by default. + * Added --start-date, --stop-date 'YYYY-MM-DD hh:mm:ss' options. + * Added --dir-name-depth option. + * Changed --file-idle-time default value to 0. + * Changed screenshot format to PNG. + +0.40: + * Added caption support. + * Improved command line interoperability on Windows. + * Fixed directory deletion short circuiting processing the rest of a commit. + * Fixed issue loading non-ascii user image filenames on windows. + * Ignore UTF-8 byte order mark at the start of lines in custom log files. + * Fix to boost macros for Macs and non-GNU systems (mistydemeo). + * Autotools improvements (flameeyes). + +0.39: + * Fixed blurry non power of 2 logos. + * File colour changes now supported in custom logs (rmyorston). + * Fixed building against Boost 1.50 (svenstaro). + * Updated boost autoconf macros (flameeyes). + * Autogen script (matthiaskrgr). + +0.38: + * New high quality sprites. + * Fullscreen toggle with alt + enter. + * Window is now resizable. -WIDTHxHEIGHT! creates a non-resizable window. + * Lowered minimum zoom distance. + * Use AM_CPPFLAGS in Makefile.am to allow passing custom CPPFLAGS. + * Don't add files that match the path of a known directory. + * Fixed divide by zero in text shader causing artifacts on some video cards. + * Recursively search for repository directory when log-format not specified + (thanks to Jörg Bachmann for original concept / prototype). + * New dependency on Boost Filesystem. + * Doubled the maximum zoom out distance. + * Allow negative timestamps before 1970 in custom log (artzub). + * Fix for UTF8-CPP checked.h compilation issue (vszakats). + * Fixed bug causing missing characters in text. + * Fixed --highlight-users option not using highlight-colour. + * highlight-colour default changed to white. + * Added --selection-colour option (applied to selected users and files). + * Added --dir-colour option (applied to directories). + +0.37: + * Made SVN log GMT timestamp conversion fix portable. + +0.36: + * Fixed SVN log GMT timestamp conversion. + * Fixed issue with sub-dirs of deleted dir not being removed in some cases. + +0.35: + * Added long file extension truncation handling to file key (--key). + * Treat changes in Mercurial log files with the same time/user as one commit. + * Fixed handling of spaces in directory names with Mercurial. + * Fixed --font-colour option. + +0.34: + * Now using VBOs and shaders for faster rendering when OpenGL 2.0 is available. + * Eliminated bloom colour banding artifacts (requires OpenGL 2.0). + * New font rendering library derived from FTGL (FTGL no longer required). + * Single pass font/shadow rendering (with lots of help from Chris Forbes). + * Added --no-vsync option. + * Fixed bug where tree is out of alignment with object positions in windowed + mode due to using the wrong display dimensions internally. + * Removed default max-files limit. + +0.33: + * Added --hide root option to not draw branches from the root directory. + * Fixed log parsing of Bazaar merges and tagged commits. + * --output-custom-log now skips unparsed log entries instead of exiting. + +0.32: + * Fixed behaviour of user camera tracking. + +0.31: + * Added --with-tinyxml option to configure (use the system TinyXML library). + +0.30: + * Fixed crash when SVN log entry contains no 'paths' element. + * Handle directory deletion (happens in SVN logs). + +0.29: + * SVN built-in support. + * cvs2cl log support (cvs-exp support is now deprecated). + * Made camera behaviour when zooming and selecting objects more intuitive. + * Improved interactive performance. + * Added file extension key (--key or toggled with 'K'). + * Added mouse-over tool tips. + * Added --highlight-colour option. + * Added --hash-seed option. The S key now randomizes colours. + * Added --output-custom-log option. + * Exposed --time-scale option (previously only available interactively). + * Removed arbitrary 1024 maximum length limit for log lines. + * Fixed two file colouring bugs (quoted files from git, period in file path). + * Fix handling of avatars for UTF-8 usernames on MACOSX (Christian Köstlin). + * Recover from video mode failing to set due to multi-sampling (Siddhesh Poyarekar). + +0.28: + * Bazaar support for merged commits (Nick Moffit). + * C++ efficiency improvements (Oliver Smith). + * Improved cvs-exp log compatibility. + * Re-show name of user when adding a new action if user is idle. + * Added --padding option to control camera view padding. + * More accurate camera tracking (tracks the bounding boxes of objects). + * Improved automatic rotation logic. + +0.27: + * Display time stops at the time of the last commit. + * Users fade out when end reached rather than ending abruptly. + * Position slider is now hidden by default if recording a video. + * Automatic camera rotation for better use of screen space. + * Support international keyboards (Peter Kjellerstedt). + * C++ efficiency improvements (Jacob Metcalfe). + * Fixed crash when reading from STDIN. + * Fixed intermittent crash closing Gource when using --output-ppm-stream. + * Added ini style config file support (see --load/save-config). + * Added screenshot button (F12). Screenshots respect the alpha channel. + * Added --transparent to make the background see-through (for screenshots). + * Added --logo and --background-image options. + * Added --dont-stop option for manual exiting when recording videos. + * Added --stop-at-time option to stop Gource after a number of seconds. + * Added --hide 'mouse' option. + * Added --highlight-dirs option. + * Added --file-extensions to show filename extensions only. + * Added --user-filter REGEX option. + * Allow --file-idle-time 0 (files will never expire). + * Allow --start-position 'random' to set a random start position. + * --log-command VCS replaces multiple --log-command-VCS options. + * Replaced --disable-progress and --disable-bloom with arguments to --hide. + +0.26a: + * Updated to latest version of GL autoconf macros. + +0.26: + * Improved mouse dragging. + * Holding right mouse button and moving the mouse rotates the view. + * The middle mouse button now toggles the camera mode. + * Username positions now scale correctly. + * Simulation time no longer incremented while paused, counting towards file time lag. + * M key now toggles mouse visibility. + * Added --hide option to use instead of multiple --hide-ELEMENT options. + +0.25: + * Bazaar support (John Arbash Meinel). + * Dragging the mouse on the background moves the camera. + * Added --camera-mode option (track,overview). + * Support DOS line endings in logs. + * Improved compatibility of hg log command (Brendan Cully). + * Fixed PPM exporter producing blank images on some video cards. + * Fixed parsing of negative timezones from cvs-exp.pl logs. + * Fixed various gdb and compiler warnings. + +0.24: + * PPM output speed improvements, including using a second thread (HighlandSun). + * Now using standard autotools (Flameeyes). + * Fixed --max-file-lag not working with some custom log files. + * Gource will stop at the end of the log by default when recording a video. + * Fixed STDIN stopping working after the first lot of records with tail -f. + * Added proper exception handling. + * Print errors to stderr. + +0.23: + * Hiding filenames no longer hides directory names. + * Fixed --stop-on-idle option. + * Added --stop-at-end option (more intuitive than --stop-position 1.0). + +0.22: + * Fixed Mercurial log order. + +0.21b: + * Fixed windows build. + +0.21: + * Some documentation fixes. + +0.20: + * Added bloom effect (turn off with --disable-bloom). + * Added support for Mercurial (thanks to Justin Love for gource.style). + * --start-position option now works in combination with --disable-progress. + +0.19: + * Use time_t instead of long for timestamps. + +0.18: + * Fixed camera movement while the simulation is paused. + +0.17: + * Show correct month for CVS logs. + * Added time scaling (Bitshifter). + +0.16: + * Added --hide-dirnames option. + * Added --user-scale option. + * Added --date-format option (Pat Notz). + * Fix bug when encountering long log lines. + * Fixed incorrect parsing of trivial merges. + * Fixed building issues on OSX. + +0.15: + * Added PPM output support for creating videos (Johannes Schindelin). + * Added experimental Apache combined access log support (--log-format apache). + * Added --stop-position and --stop-on-idle options (useful for making videos). + * Added --max-file-lag option to limit how long after a commit file changes can take to appear. + * Added --no-renames to the git log command as they don't display correctly. + * Added --max-user-speed and --user-friction as options. + * Now builds on OSX Leopard (with the required libaries installed). + * Caught raw exception from replace_invalid(). + * Added CXXFLAGS. You may want to override the default (eg CXXFLAGS=-O3 ./configure). + +0.14: + * Updated SVN instructions. + +0.13: + * Removed single quotes from log command (fixes running gource --git-log-command in back ticks) + * Added SVN instructions. + * Fixed manpage hyphens. + +0.12: + * Added --enable-ttf-font-dir=DIR option to configure (to specify the ttf-freefont directory). + * UTF-8 support using UTF8-CPP (http://utfcpp.sourceforge.net/). + * Changed the git log command (see --git-log-command) to require less work to parse. + Log files generated with the previous git-log command used by gource should continue to work. + * Allow --seconds-per-day value less than 1.0. + * Added --git-branch command. + * Added --loop command. + * Added --crop command. + +0.11: + * Made N key skip to next entry. + * Documented --user-image-dir flag. + * temp file name now uses uid instead of time + +0.1: + * First release. diff --git a/gource/README.txt b/gource/README.txt new file mode 100644 index 000000000..9eeb62485 --- /dev/null +++ b/gource/README.txt @@ -0,0 +1,469 @@ + + Gource + + software version control visualization + + Copyright (C) 2009 Andrew Caudwell + + http://gource.io + +Contents +======== + +1. Description +2. Requirements +3. Using Gource +4. Copyright + +1. Description +============== + +OpenGL-based 3D visualisation tool for source control repositories. + +The repository is displayed as a tree where the root of the repository is the +centre, directories are branches and files are leaves. Contributors to the +source code appear and disappear as they contribute to specific files and +directories. + +2. Requirements +=============== + +Gource's display is rendered using OpenGL and requires a 3D accelerated video +card to run. + +3. Using Gource +=============== + +gource [options] [path] + +options: + + -h, --help + Help ('-H' for extended help). + + -WIDTHxHEIGHT, --viewport WIDTHxHEIGHT + Set the viewport size. If -f is also supplied, will attempt to set + the video mode to this also. Add ! to make the window non-resizable. + + --screen SCREEN + Set the number of the screen to display on. + + --window-position XxY + Initial window position on your desktop which may be made up of + multiple monitors. + + This will override the screen setting so don't specify both. + + --frameless + Frameless window. + + -f, --fullscreen + Fullscreen. + + -w, --windowed + Windowed. + + --transparent + Make the background transparent. Only really useful for screenshots. + + --start-date "YYYY-MM-DD hh:mm:ss +tz" + Start with the first entry after the supplied date and optional time. + + If a time zone offset isn't specified the local time zone is used. + + Example accepted formats: + + "2012-06-30" + "2012-06-30 12:00" + "2012-06-30 12:00:00 +12" + + --stop-date "YYYY-MM-DD hh:mm:ss +tz" + Stop after the last entry prior to the supplied date and optional time. + + Uses the same format as --start-date. + + -p, --start-position POSITION + Begin at some position in the log (between 0.0 and 1.0 or 'random'). + + --stop-position POSITION + Stop (exit) at some position in the log (does not work with STDIN). + + -t, --stop-at-time SECONDS + Stop (exit) after a specified number of seconds. + + --stop-at-end + Stop (exit) at the end of the log / stream. + + --loop + Loop back to the start of the log when the end is reached. + + --loop-delay-seconds + Seconds to delay before looping. + + -a, --auto-skip-seconds SECONDS + Skip to next entry if nothing happens for a number of seconds. + + -s, --seconds-per-day SECONDS + Speed of simulation in seconds per day. + + --realtime + Realtime playback speed. + + --no-time-travel + Use the time of the last commit if the time of a commit is in the past. + + -c, --time-scale SCALE + Change simulation time scale. + + -i, --file-idle-time SECONDS + Time in seconds files remain idle before they are removed or 0 + for no limit. + + -e, --elasticity FLOAT + Elasticity of nodes. + + -b, --background-colour FFFFFF + Background colour in hex. + + --background-image IMAGE + Set a background image. + + --logo IMAGE + Logo to display in the foreground. + + --logo-offset XxY + Offset position of the logo. + + --title TITLE + Set a title. + + --font-file FILE + Specify the font. Should work with most font file formats supported by FreeType, such as TTF and OTF, among others. + + --font-scale SCALE + Scale the size of all fonts. + + --font-size SIZE + Font size used by the date and title. + + --file-font-size SIZE + Font size of filenames. + + --dir-font-size SIZE + Font size of directory names + + --user-font-size SIZE + Font size of user names. + + --font-colour FFFFFF + Font colour used by the date and title in hex. + + --key + Show file extension key. + + --date-format FORMAT + Specify display date string (strftime format). + + --log-command VCS + Show the VCS log command used by gource (git,svn,hg,bzr,cvs2cl). + + --log-format VCS + Specify the log format (git,svn,hg,bzr,cvs2cl,custom). + + Required when reading from STDIN. + + --git-branch + Get the git log of a branch other than the current one. + + --follow-user USER + Have the camera automatically follow a particular user. + + --highlight-dirs + Highlight the names of all directories. + + --highlight-user USER + Highlight the names of a particular user. + + --highlight-users + Highlight the names of all users. + + --highlight-colour FFFFFF + Font colour for highlighted users in hex. + + --selection-colour FFFFFF + Font colour for selected users and files. + + --filename-colour FFFFFF + Font colour for filenames. + + --dir-colour FFFFFF + Font colour for directories. + + --dir-name-depth DEPTH + Draw names of directories down to a specific depth in the tree. + + --dir-name-position FLOAT + Position along edge of the directory name + (between 0.1 and 1.0, default is 0.5). + + --filename-time SECONDS + Duration to keep filenames on screen (>= 2.0). + + --file-extensions + Show filename extensions only. + + --file-extension-fallback + Use filename as extension if the extension is missing or empty. + + --file-filter REGEX + Filter out file paths matching the specified regular expression. + + --file-show-filter REGEX + Show only file paths matching the specified regular expression. + + --user-filter REGEX + Filter usernames matching the specified regular expression. + + --user-show-filter REGEX + Show only usernames matching the specified regular expression. + + --user-image-dir DIRECTORY + Directory containing .jpg or .png images of users + (eg "Full Name.png") to use as avatars. + + --default-user-image IMAGE + Path of .jpg or .png to use as the default user image. + + --colour-images + Colourize user images. + + --crop AXIS + Crop view on an axis (vertical,horizontal). + + --padding FLOAT + Camera view padding. + + --multi-sampling + Enable multi-sampling. + + --no-vsync + Disable vsync. + + --bloom-multiplier FLOAT + Adjust the amount of bloom. + + --bloom-intensity FLOAT + Adjust the intensity of the bloom. + + --max-files NUMBER + Set the maximum number of files or 0 for no limit. + + Excess files will be discarded. + + --max-file-lag SECONDS + Max time files of a commit can take to appear. + + Use -1 for no limit. + + --max-user-speed UNITS + Max speed users can travel per second. + + --user-friction SECONDS + Time users take to come to a halt. + + --user-scale SCALE + Change scale of user avatars. + + --camera-mode MODE + Camera mode (overview,track). + + --disable-auto-rotate + Disable automatic camera rotation. + + --disable-input + Disable keyboard and mouse input. + + --hide DISPLAY_ELEMENT + Hide one or more display elements from the list below: + + bloom - bloom effect + date - current date + dirnames - names of directories + files - file icons + filenames - names of files + mouse - mouse cursor + progress - progress bar widget + root - root directory of tree + tree - animated tree structure + users - user avatars + usernames - names of users + + Separate multiple elements with commas (eg "mouse,progress") + + --hash-seed SEED + Change the seed of hash function. + + --caption-file FILE + Caption file (see Caption Log Format). + + --caption-size SIZE + Caption size. + + --caption-colour FFFFFF + Caption colour in hex. + + --caption-duration SECONDS + Caption duration. + + --caption-offset X + Caption horizontal offset (0 to centre captions). + + -o, --output-ppm-stream FILE + Output a PPM image stream to a file ('-' for STDOUT). + + This will automatically hide the progress bar initially and + enable 'stop-at-end' unless other behaviour is specified. + + -r, --output-framerate FPS + Framerate of output (25,30,60). Used with --output-ppm-stream. + + --output-custom-log FILE + Output a custom format log file ('-' for STDOUT). + + --load-config CONFIG_FILE + Load a gource conf file. + + --save-config CONFIG_FILE + Save a gource conf file with the current options. + + --path PATH + + path Either a supported version control directory, a pre-generated log + file (see log commands or the custom log format), a Gource conf + file or '-' to read STDIN. + + If path is omitted, gource will attempt to read a log from the + current directory. + +Git, Bazaar, Mercurial and SVN Examples: + +View the log of the repository in the current path: + + gource + +View the log of a project in the specified directory: + + gource my-project-dir + +For large projects, generating a log of the project history may take a long +time. For centralized VCS like SVN, generating the log may also put load on +the central VCS server. + +In these cases, you may like to save a copy of the log for later use. + +You can generate a log in the VCS specific log format using +the --log-command VCS option: + + cd my-svn-project + `gource --log-command svn` > my-svn-project.log + gource my-svn-project.log + +You can also have Gource write a copy of the log file in its own format: + + gource --output-custom-log my-project-custom.log + +CVS Support: + +Use 'cvs2cl' to generate the log and then pass it to Gource: + + cvs2cl --chrono --stdout --xml -g-q > my-cvs-project.log + gource my-cvs-project.log + +Custom Log Format: + +If you want to use Gource with something other than the supported systems, +there is a pipe ('|') delimited custom log format: + + timestamp - A unix timestamp of when the update occured. + username - The name of the user who made the update. + type - initial for the update type - (A)dded, (M)odified or (D)eleted. + file - Path of the file updated. + colour - A colour for the file in hex (FFFFFF) format. Optional. + +Caption Log Format: + +Gource can display captions along the timeline by specifying a caption file +(using --caption-file) in the pipe ('|') delimited format below: + + timestamp - A unix timestamp of when to display the caption. + caption - The caption + +Recording Videos: + +See the guide on the homepage for examples of recording videos with Gource: + + https://github.com/acaudwell/Gource/wiki/Videos + +More Information: + +Visit the Gource homepage for guides and examples of using Gource with various +version control systems: + + http://gource.io + +Interface: + +The time shown in the top left of the screen is set initially from the first +log entry read and is incremented according to the simulation speed +(--seconds-per-day). + +Pressing SPACE at any time will pause/resume the simulation. While paused you +may use the mouse to inspect the detail of individual files and users. + +TAB cycles through selecting the current visible users. + +The camera mode, either tracking activity or showing the entire code tree, can +be toggled using the Middle mouse button. + +You can drag the left mouse button to manually control the camera. The right +mouse button rotates the view. + +Interactive keyboard commands: + + (V) Toggle camera mode + (C) Displays Gource logo + (K) Toggle file extension key + (M) Toggle mouse visibility + (N) Jump forward in time to next log entry + (S) Randomize colours + (D) Toggle directory name display mode + (F) Toggle file name display mode + (U) Toggle user name display mode + (G) Toggle display of users + (T) Toggle display of directory tree edges + (R) Toggle display of root directory edges + (+-) Adjust simulation speed + (<>) Adjust time scale + (TAB) Cycle through visible users + (F12) Screenshot + (Alt+Enter) Fullscreen toggle + (ESC) Quit + +4. Copyright +============ + +Gource - software version control visualization +Copyright (C) 2009 Andrew Caudwell + +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 3 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, see . diff --git a/gource/SDL2.dll b/gource/SDL2.dll new file mode 100644 index 000000000..b4b67c0e7 Binary files /dev/null and b/gource/SDL2.dll differ diff --git a/gource/SDL2_image.dll b/gource/SDL2_image.dll new file mode 100644 index 000000000..290bb6b0e Binary files /dev/null and b/gource/SDL2_image.dll differ diff --git a/gource/THANKS.txt b/gource/THANKS.txt new file mode 100644 index 000000000..0636814af --- /dev/null +++ b/gource/THANKS.txt @@ -0,0 +1 @@ +Cheers to everyone at Catalyst IT for their support and encouragement. diff --git a/gource/cmd/gource b/gource/cmd/gource new file mode 100644 index 000000000..1bab330a4 --- /dev/null +++ b/gource/cmd/gource @@ -0,0 +1,3 @@ +#!/bin/sh +GOURCE_CMD_DIR=`dirname "$0"` +"$GOURCE_CMD_DIR/../gource.exe" "$@" diff --git a/gource/cmd/gource.cmd b/gource/cmd/gource.cmd new file mode 100644 index 000000000..31b2f7e22 --- /dev/null +++ b/gource/cmd/gource.cmd @@ -0,0 +1,2 @@ +@echo off +"%~dp0\..\gource.exe" %* diff --git a/gource/data/beam.png b/gource/data/beam.png new file mode 100644 index 000000000..1250c53b6 Binary files /dev/null and b/gource/data/beam.png differ diff --git a/gource/data/bloom.tga b/gource/data/bloom.tga new file mode 100644 index 000000000..f7812c396 Binary files /dev/null and b/gource/data/bloom.tga differ diff --git a/gource/data/bloom_alpha.tga b/gource/data/bloom_alpha.tga new file mode 100644 index 000000000..a1b79947c Binary files /dev/null and b/gource/data/bloom_alpha.tga differ diff --git a/gource/data/file.png b/gource/data/file.png new file mode 100644 index 000000000..739882596 Binary files /dev/null and b/gource/data/file.png differ diff --git a/gource/data/fonts/FreeSans.ttf b/gource/data/fonts/FreeSans.ttf new file mode 100644 index 000000000..9db958532 Binary files /dev/null and b/gource/data/fonts/FreeSans.ttf differ diff --git a/gource/data/fonts/README.txt b/gource/data/fonts/README.txt new file mode 100644 index 000000000..8c970cbcf --- /dev/null +++ b/gource/data/fonts/README.txt @@ -0,0 +1,108 @@ +-*-text-*- + GNU FreeFont + +The GNU FreeFont project aims to provide a useful set of free scalable +(i.e., OpenType) fonts covering as much as possible of the ISO 10646/Unicode +UCS (Universal Character Set). + +Statement of Purpose +-------------------- + +The practical reason for putting glyphs together in a single font face is +to conveniently mix symbols and characters from different writing systems, +without having to switch fonts. + +Coverage +-------- + +FreeFont covers the following character sets + +* ISO 8859 parts 1-15 +* CEN MES-3 European Unicode Subset + http://www.evertype.com/standards/iso10646/pdf/cwa13873.pdf +* IBM/Microsoft code pages 437, 850, 852, 1250, 1252 and more +* Microsoft/Adobe Windows Glyph List 4 (WGL4) + http://www.microsoft.com/typography/otspec/WGL4.htm +* KOI8-R and KOI8-RU +* DEC VT100 graphics symbols +* International Phonetic Alphabet +* Arabic, Hebrew, Armenian, Georgian, Ethiopian and Thai alphabets, + including Arabic presentation forms A/B +* mathematical symbols, including the whole TeX repertoire of symbols +* APL symbols + etc. + +Editing +------- + +The free outline font editor, George Williams's FontForge + is used for editing the fonts. + +Design Issues +------------- + +Which font shapes should be made? Historical style terms like Renaissance +or Baroque letterforms cannot be applied beyond Latin/Cyrillic/Greek +scripts to any greater extent than Kufi or Nashki can be applied beyond +Arabic script; "italic" is really only meaningful for Latin letters. + +However, most modern writing systems have typographic formulations for +contrasting uniform and modulated character stroke widths, and have some +history with "oblique", faces. Since the advent of the typewriter, most +have developed a typographic style with uniform-width characters. + +Accordingly, the FreeFont family has one monospaced - FreeMono - and two +proportional faces (one with uniform stroke - FreeSans - and one with +modulated stroke - FreeSerif). + +To make text from different writing systems look good side-by-side, each +FreeFont face is meant to contain characters of similar style and weight. + +Licensing +--------- + +Free UCS scalable fonts 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 3 of the License, or +(at your option) any later version. + +The fonts are distributed in the hope that they 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., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +As a special exception, if you create a document which uses this font, and +embed this font or unaltered portions of this font into the document, this +font does not by itself cause the resulting document to be covered by the +GNU General Public License. This exception does not however invalidate any +other reasons why the document might be covered by the GNU General Public +License. If you modify this font, you may extend this exception to your +version of the font, but you are not obligated to do so. If you do not +wish to do so, delete this exception statement from your version. + + +Files and their suffixes +------------------------ + +The files with .sfd (Spline Font Database) are in FontForge's native format. +Please use these if you plan to modify the font files. + +TrueType fonts for immediate consumption are the files with the .ttf +(TrueType Font) suffix. These are ready to use in Xwindows based +systems using FreeType, on Mac OS, and on older Windows systems. + +OpenType fonts (with suffix .otf) are for use in Windows Vista. +Note that although they can be installed on Linux, but many applications +in Linux still don't support them. + + +-------------------------------------------------------------------------- +Primoz Peterlin, +Steve White + +Free UCS scalable fonts: http://savannah.gnu.org/projects/freefont/ +$Id: README,v 1.7 2009/01/13 08:43:23 Stevan_White Exp $ diff --git a/gource/data/gource.style b/gource/data/gource.style new file mode 100644 index 000000000..333e03245 --- /dev/null +++ b/gource/data/gource.style @@ -0,0 +1,5 @@ +changeset = '{file_adds}{file_copies}{file_mods}{file_dels}' +file_mod = "{date|hgdate}|{author|person}|M|{file_mod}\n" +file_add = "{date|hgdate}|{author|person}|A|{file_add}\n" +file_del = "{date|hgdate}|{author|person}|D|{file_del}\n" +file_copy = "{date|hgdate}|{author|person}|A|{name}\n" diff --git a/gource/data/shaders/bloom.frag b/gource/data/shaders/bloom.frag new file mode 100644 index 000000000..81960feb0 --- /dev/null +++ b/gource/data/shaders/bloom.frag @@ -0,0 +1,16 @@ + +varying vec3 pos; + +void main() +{ + float r = fract(sin(dot(pos.xy ,vec2(11.3713,67.3219))) * 2351.3718); + + float offset = (0.5 - r) * gl_TexCoord[0].x * 0.045; + + float intensity = min(1.0, cos((length(pos*2.0)+offset)/gl_TexCoord[0].x)); + float gradient = intensity * smoothstep(0.0, 2.0, intensity); + + gradient *= smoothstep(1.0,0.67+r*0.33, 1.0-intensity); + + gl_FragColor = gl_Color * gradient; +} diff --git a/gource/data/shaders/bloom.vert b/gource/data/shaders/bloom.vert new file mode 100644 index 000000000..7274540e5 --- /dev/null +++ b/gource/data/shaders/bloom.vert @@ -0,0 +1,10 @@ + +varying vec3 pos; + +void main() +{ + pos = gl_Vertex.xyz - gl_MultiTexCoord0.yzw; + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_FrontColor = gl_Color; + gl_Position = ftransform(); +} diff --git a/gource/data/shaders/shadow.frag b/gource/data/shaders/shadow.frag new file mode 100644 index 000000000..6235f7f36 --- /dev/null +++ b/gource/data/shaders/shadow.frag @@ -0,0 +1,9 @@ +uniform sampler2D tex; +uniform float shadow_strength; + +void main(void) +{ + vec4 colour = texture2D(tex,gl_TexCoord[0].st); + + gl_FragColor = vec4(0.0, 0.0, 0.0, gl_Color.w * colour.w * shadow_strength); +} diff --git a/gource/data/shaders/shadow.vert b/gource/data/shaders/shadow.vert new file mode 100644 index 000000000..061b80424 --- /dev/null +++ b/gource/data/shaders/shadow.vert @@ -0,0 +1,6 @@ +void main(void) +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_FrontColor = gl_Color; + gl_Position = ftransform(); +} diff --git a/gource/data/shaders/text.frag b/gource/data/shaders/text.frag new file mode 100644 index 000000000..5bed3c20d --- /dev/null +++ b/gource/data/shaders/text.frag @@ -0,0 +1,15 @@ +uniform sampler2D tex; +uniform float shadow_strength; +uniform float texel_size; + +void main(void) +{ + float colour_alpha = texture2D(tex,gl_TexCoord[0].xy).w; + float shadow_alpha = texture2D(tex,gl_TexCoord[0].xy - vec2(texel_size)).w * shadow_strength; + + float combined_alpha = 1.0 - (1.0-shadow_alpha)*(1.0-colour_alpha); + + if(combined_alpha > 0.0) colour_alpha /= combined_alpha; + + gl_FragColor = gl_Color * vec4(vec3(colour_alpha), combined_alpha); +} diff --git a/gource/data/shaders/text.vert b/gource/data/shaders/text.vert new file mode 100644 index 000000000..061b80424 --- /dev/null +++ b/gource/data/shaders/text.vert @@ -0,0 +1,6 @@ +void main(void) +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_FrontColor = gl_Color; + gl_Position = ftransform(); +} diff --git a/gource/data/user.png b/gource/data/user.png new file mode 100644 index 000000000..23b53ebb9 Binary files /dev/null and b/gource/data/user.png differ diff --git a/gource/glew32.dll b/gource/glew32.dll new file mode 100644 index 000000000..37a65a112 Binary files /dev/null and b/gource/glew32.dll differ diff --git a/gource/gource.exe b/gource/gource.exe new file mode 100644 index 000000000..9f781abc0 Binary files /dev/null and b/gource/gource.exe differ diff --git a/gource/libboost_filesystem-mt.dll b/gource/libboost_filesystem-mt.dll new file mode 100644 index 000000000..25c119769 Binary files /dev/null and b/gource/libboost_filesystem-mt.dll differ diff --git a/gource/libbz2-1.dll b/gource/libbz2-1.dll new file mode 100644 index 000000000..e22f01e27 Binary files /dev/null and b/gource/libbz2-1.dll differ diff --git a/gource/libfreetype-6.dll b/gource/libfreetype-6.dll new file mode 100644 index 000000000..9ab4da486 Binary files /dev/null and b/gource/libfreetype-6.dll differ diff --git a/gource/libgcc_s_seh-1.dll b/gource/libgcc_s_seh-1.dll new file mode 100644 index 000000000..929d55b5b Binary files /dev/null and b/gource/libgcc_s_seh-1.dll differ diff --git a/gource/libglib-2.0-0.dll b/gource/libglib-2.0-0.dll new file mode 100644 index 000000000..38b06a6a2 Binary files /dev/null and b/gource/libglib-2.0-0.dll differ diff --git a/gource/libgraphite2.dll b/gource/libgraphite2.dll new file mode 100644 index 000000000..556106bbf Binary files /dev/null and b/gource/libgraphite2.dll differ diff --git a/gource/libharfbuzz-0.dll b/gource/libharfbuzz-0.dll new file mode 100644 index 000000000..b23c3ad56 Binary files /dev/null and b/gource/libharfbuzz-0.dll differ diff --git a/gource/libiconv-2.dll b/gource/libiconv-2.dll new file mode 100644 index 000000000..d28ee1d74 Binary files /dev/null and b/gource/libiconv-2.dll differ diff --git a/gource/libintl-8.dll b/gource/libintl-8.dll new file mode 100644 index 000000000..41580ba2f Binary files /dev/null and b/gource/libintl-8.dll differ diff --git a/gource/libjpeg-8.dll b/gource/libjpeg-8.dll new file mode 100644 index 000000000..cfeb9356d Binary files /dev/null and b/gource/libjpeg-8.dll differ diff --git a/gource/liblzma-5.dll b/gource/liblzma-5.dll new file mode 100644 index 000000000..468f0a3a7 Binary files /dev/null and b/gource/liblzma-5.dll differ diff --git a/gource/libpcre-1.dll b/gource/libpcre-1.dll new file mode 100644 index 000000000..3b8707113 Binary files /dev/null and b/gource/libpcre-1.dll differ diff --git a/gource/libpng16-16.dll b/gource/libpng16-16.dll new file mode 100644 index 000000000..3c9163ebe Binary files /dev/null and b/gource/libpng16-16.dll differ diff --git a/gource/libstdc++-6.dll b/gource/libstdc++-6.dll new file mode 100644 index 000000000..305b81b4a Binary files /dev/null and b/gource/libstdc++-6.dll differ diff --git a/gource/libtiff-5.dll b/gource/libtiff-5.dll new file mode 100644 index 000000000..bb0a959bc Binary files /dev/null and b/gource/libtiff-5.dll differ diff --git a/gource/libwebp-7.dll b/gource/libwebp-7.dll new file mode 100644 index 000000000..71b632fe8 Binary files /dev/null and b/gource/libwebp-7.dll differ diff --git a/gource/libwinpthread-1.dll b/gource/libwinpthread-1.dll new file mode 100644 index 000000000..5820e18b8 Binary files /dev/null and b/gource/libwinpthread-1.dll differ diff --git a/gource/libzstd.dll b/gource/libzstd.dll new file mode 100644 index 000000000..e201b97c7 Binary files /dev/null and b/gource/libzstd.dll differ diff --git a/gource/zlib1.dll b/gource/zlib1.dll new file mode 100644 index 000000000..7e8e6fda9 Binary files /dev/null and b/gource/zlib1.dll differ