From 025aef8a15a4aed8ec050815d46f22d5ff4da7a7 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sun, 20 Jul 2003 20:57:55 +0000 Subject: [PATCH] Switched to zlib license. --- CHANGELOG | 7 + LICENSE | 513 +----------- .../pkg-support/devel-resources/ReadMe.txt | 2 +- PBProjects/pkg-support/resources/ReadMe.txt | 2 +- archivers/qpak.c | 778 ------------------ configure.in | 30 - debian/copyright | 28 +- extras/globbing.c | 7 +- extras/globbing.h | 7 +- extras/ignorecase.c | 7 +- extras/ignorecase.h | 7 +- extras/physfs_rb/installer.rb | 103 --- extras/physfs_rb/physfs/extconf.rb | 9 - extras/physfs_rb/physfs/install.rb | 7 - extras/physfs_rb/physfs/make_install_test.sh | 9 - extras/physfs_rb/physfs/physfs.rb | 121 --- extras/physfs_rb/physfs/physfsrwops.c | 192 ----- extras/physfs_rb/physfs/physfsrwops.h | 87 -- extras/physfs_rb/physfs/rb_physfs.c | 462 ----------- extras/physfs_rb/physfs/rb_physfs.h | 13 - extras/physfs_rb/physfs/rb_physfs_file.c | 226 ----- extras/physfs_rb/physfs/rb_physfs_file.h | 24 - extras/physfs_rb/physfs/rb_sdl_rwops.c | 162 ---- extras/physfs_rb/physfs/rb_sdl_rwops.h | 16 - extras/physfs_rb/physfs/test/test_physfs.rb | 358 -------- extras/physfshttpd.c | 7 +- extras/physfsrwops.c | 9 +- extras/physfsrwops.h | 9 +- physfs.c | 13 - physfs.spec.in | 2 +- physfs_internal.h | 389 --------- zlib_license_change.txt | 757 +++++++++++++++++ 32 files changed, 840 insertions(+), 3523 deletions(-) delete mode 100644 archivers/qpak.c delete mode 100644 extras/physfs_rb/installer.rb delete mode 100644 extras/physfs_rb/physfs/extconf.rb delete mode 100644 extras/physfs_rb/physfs/install.rb delete mode 100755 extras/physfs_rb/physfs/make_install_test.sh delete mode 100644 extras/physfs_rb/physfs/physfs.rb delete mode 100644 extras/physfs_rb/physfs/physfsrwops.c delete mode 100644 extras/physfs_rb/physfs/physfsrwops.h delete mode 100644 extras/physfs_rb/physfs/rb_physfs.c delete mode 100644 extras/physfs_rb/physfs/rb_physfs.h delete mode 100644 extras/physfs_rb/physfs/rb_physfs_file.c delete mode 100644 extras/physfs_rb/physfs/rb_physfs_file.h delete mode 100644 extras/physfs_rb/physfs/rb_sdl_rwops.c delete mode 100644 extras/physfs_rb/physfs/rb_sdl_rwops.h delete mode 100644 extras/physfs_rb/physfs/test/test_physfs.rb create mode 100644 zlib_license_change.txt diff --git a/CHANGELOG b/CHANGELOG index 81d0b19c..73f1c7fa 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,13 @@ * CHANGELOG. */ +07202003 - Switched to zlib license (see new LICENSE text in root of source + tree, and zlib_license_switch.txt for details). Had to remove + archivers/qpak.c, the Ruby bindings from the extras directory, and + the Russian and Spanish translations, since those contributors + couldn't be contacted. If they show up, we'll readd them to the + project, otherwise we'll eventually replace their work...everyone + else signed on for the change. 06112003 - Patches to globbing.c to handle corner cases (thanks, Bradley!). 06102003 - Added globbing.c to "extras" directory. 05232003 - Rewrote MacOSX/Darwin CD-ROM detection code to use IOKit, which is diff --git a/LICENSE b/LICENSE index b1e3f5a2..fd91fa37 100644 --- a/LICENSE +++ b/LICENSE @@ -1,504 +1,29 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - Copyright (C) 1991, 1999 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. + Copyright (c) 2003 Ryan C. Gordon and others. -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] + This software is provided 'as-is', without any express or implied warranty. + In no event will the authors be held liable for any damages arising from + the use of this software. - Preamble + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software in a + product, an acknowledgment in the product documentation would be + appreciated but is not required. - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. + 3. This notice may not be removed or altered from any source distribution. - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. + Ryan C. Gordon - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! +(Please note that versions of PhysicsFS prior to 0.1.9 are licensed under +the GNU Lesser General Public License, which restricts you significantly more. +For your own safety, please make sure you've got 0.1.9 or later if you plan +to use physfs in a commercial or closed-source project.) diff --git a/PBProjects/pkg-support/devel-resources/ReadMe.txt b/PBProjects/pkg-support/devel-resources/ReadMe.txt index 8227c411..be3feec4 100755 --- a/PBProjects/pkg-support/devel-resources/ReadMe.txt +++ b/PBProjects/pkg-support/devel-resources/ReadMe.txt @@ -4,4 +4,4 @@ The API can be found in the file ~/Library/Frameworks/physfs.framework/Headers/p The source code is available from: http://www.icculus.org/physfs/ -This library is distributed under the terms of the GNU LGPL license: http://www.gnu.org/copyleft/lesser.html +This library is distributed under the terms of the zlib license: http://www.opensource.org/licenses/zlib-license.php diff --git a/PBProjects/pkg-support/resources/ReadMe.txt b/PBProjects/pkg-support/resources/ReadMe.txt index cdc9844a..eb186eec 100755 --- a/PBProjects/pkg-support/resources/ReadMe.txt +++ b/PBProjects/pkg-support/resources/ReadMe.txt @@ -3,4 +3,4 @@ This is an example portable file system. The source code is available from: http://www.icculus.org/physfs/ -This library is distributed under the terms of the GNU LGPL license: http://www.gnu.org/copyleft/lesser.html +This library is distributed under the terms of the zlib license: http://www.opensource.org/licenses/zlib-license.php diff --git a/archivers/qpak.c b/archivers/qpak.c deleted file mode 100644 index 3e1ace58..00000000 --- a/archivers/qpak.c +++ /dev/null @@ -1,778 +0,0 @@ -/* - * Quake PAK support routines for PhysicsFS. - * - * This driver handles id Software Quake PAK files. - * - * Please see the file LICENSE in the source's root directory. - * - * This file written by Ed Sinjiashvili. - */ - -#if HAVE_CONFIG_H -# include -#endif - -#if (defined PHYSFS_SUPPORTS_QPAK) -#include -#include -#include -#include "physfs.h" - -#define __PHYSICSFS_INTERNAL__ -#include "physfs_internal.h" - -#define QPAK_MAXDIRLEN 60 - -typedef struct -{ - char name[56]; - PHYSFS_uint32 offset; - PHYSFS_uint32 size; -} QPAKentry; - -typedef struct tagQPAKdirentry -{ - char *name; - QPAKentry *entry; - struct tagQPAKdirentry *next; -} QPAKdirentry; - -typedef struct QPAKDirectory -{ - char name[QPAK_MAXDIRLEN]; - - struct QPAKDirectory *dirs, *next; - - QPAKdirentry *files; -} QPAKdirectory; - -typedef struct -{ - void *handle; - char *filename; - PHYSFS_uint32 dirOffset; - PHYSFS_uint32 totalEntries; - QPAKentry *entries; - QPAKdirectory *root; -} QPAKinfo; - -typedef struct -{ - void *handle; - QPAKentry *entry; - PHYSFS_sint64 curPos; -} QPAKfileinfo; - - -static int QPAK_isArchive(const char *filename, int forWriting); -static DirHandle *QPAK_openArchive(const char *name, int forWriting); -static void QPAK_dirClose(DirHandle *h); -static LinkedStringList *QPAK_enumerateFiles(DirHandle *h, const char *dirname, - int omitSymLinks); -static int QPAK_exists(DirHandle *h, const char *name); -static int QPAK_isDirectory(DirHandle *h, const char *name, int *e); -static int QPAK_isSymLink(DirHandle *h, const char *name, int *e); -static PHYSFS_sint64 QPAK_getLastModTime(DirHandle *h, const char *n, int *e); -static FileHandle *QPAK_openRead(DirHandle *h, const char *name, int *e); -static FileHandle *QPAK_openWrite(DirHandle *h, const char *name); -static FileHandle *QPAK_openAppend(DirHandle *h, const char *name); - - -static PHYSFS_sint64 QPAK_read(FileHandle *handle, void *buffer, - PHYSFS_uint32 objSize, PHYSFS_uint32 objCount); -static PHYSFS_sint64 QPAK_write(FileHandle *handle, const void *buffer, - PHYSFS_uint32 objSize, PHYSFS_uint32 objCount); -static int QPAK_eof(FileHandle *handle); -static PHYSFS_sint64 QPAK_tell(FileHandle *handle); -static int QPAK_seek(FileHandle *handle, PHYSFS_uint64 offset); -static PHYSFS_sint64 QPAK_fileLength(FileHandle *handle); -static int QPAK_fileClose(FileHandle *handle); -static int QPAK_remove(DirHandle *h, const char *name); -static int QPAK_mkdir(DirHandle *h, const char *name); - - -const PHYSFS_ArchiveInfo __PHYSFS_ArchiveInfo_QPAK = -{ - "PAK", - "Quake PAK file format", - "Ed Sinjiashvili ", - "http://icculus.org/physfs/", -}; - -static const FileFunctions __PHYSFS_FileFunctions_QPAK = -{ - QPAK_read, /* read() method */ - QPAK_write, /* write() method */ - QPAK_eof, /* eof() method */ - QPAK_tell, /* tell() method */ - QPAK_seek, /* seek() method */ - QPAK_fileLength, /* fileLength() method */ - QPAK_fileClose /* fileClose() method */ -}; - -const DirFunctions __PHYSFS_DirFunctions_QPAK = -{ - &__PHYSFS_ArchiveInfo_QPAK, - QPAK_isArchive, /* isArchive() method */ - QPAK_openArchive, /* openArchive() method */ - QPAK_enumerateFiles, /* enumerateFiles() method */ - QPAK_exists, /* exists() method */ - QPAK_isDirectory, /* isDirectory() method */ - QPAK_isSymLink, /* isSymLink() method */ - QPAK_getLastModTime, /* getLastModTime() method */ - QPAK_openRead, /* openRead() method */ - QPAK_openWrite, /* openWrite() method */ - QPAK_openAppend, /* openAppend() method */ - QPAK_remove, /* remove() method */ - QPAK_mkdir, /* mkdir() method */ - QPAK_dirClose /* dirClose() method */ -}; - - -#define QPAK_MAGIC 0x4B434150 /* look like "PACK" in ascii. */ - - -/* - * Read an unsigned 32-bit int and swap to native byte order. - */ -static int readui32(void *in, PHYSFS_uint32 *val) -{ - PHYSFS_uint32 v; - BAIL_IF_MACRO(__PHYSFS_platformRead(in, &v, sizeof (v), 1) != 1, NULL, 0); - *val = PHYSFS_swapULE32(v); - return(1); -} /* readui32 */ - - -static int openQPak(const char *filename, int forWriting, void **fileHandle) -{ - PHYSFS_uint32 sig; - - *fileHandle = NULL; - BAIL_IF_MACRO(forWriting, ERR_ARC_IS_READ_ONLY, 0); - - *fileHandle = __PHYSFS_platformOpenRead(filename); - BAIL_IF_MACRO(*fileHandle == NULL, NULL, 0); - - if (!readui32(*fileHandle, &sig)) - goto openPak_failed; - - if (sig != QPAK_MAGIC) - { - __PHYSFS_setError(ERR_UNSUPPORTED_ARCHIVE); - goto openPak_failed; - } /* if */ - - return(1); - -openPak_failed: - if (*fileHandle != NULL) - __PHYSFS_platformClose(*fileHandle); - - *fileHandle = NULL; - return(0); -} /* openQPak */ - - -static int QPAK_isArchive(const char *filename, int forWriting) -{ - void *fileHandle; - int retval = openQPak(filename, forWriting, &fileHandle); - - if (fileHandle != NULL) - __PHYSFS_platformClose(fileHandle); - - return(retval); -} /* QPAK_isArchive */ - - -static int qpak_loadEntries(void *fh, int dirOffset, int numEntries, - QPAKentry *entries) -{ - PHYSFS_sint32 i; - - BAIL_IF_MACRO(__PHYSFS_platformSeek(fh, dirOffset) == 0, NULL, 0); - - for (i = 0; i < numEntries; i++, entries++) - { - PHYSFS_sint64 r = __PHYSFS_platformRead(fh, entries->name, 56, 1); - BAIL_IF_MACRO(r == 0, NULL, 0); - BAIL_IF_MACRO(!readui32(fh, &entries->offset), NULL, 0); - BAIL_IF_MACRO(!readui32(fh, &entries->size), NULL, 0); - } /* for */ - - return(1); -} /* qpak_loadEntries */ - - -static QPAKdirentry *qpak_newDirentry(char *name, QPAKentry *entry) -{ - QPAKdirentry *retval = (QPAKdirentry *) malloc(sizeof (QPAKdirentry)); - BAIL_IF_MACRO(retval == NULL, ERR_OUT_OF_MEMORY, 0); - - retval->name = name; - retval->entry = entry; - retval->next = NULL; - - return(retval); -} /* qpak_newDirentry */ - - -static void qpak_deleteDirentry(QPAKdirentry *e) -{ - while (e != NULL) - { - QPAKdirentry *next = e->next; - free(e); - e = next; - } /* while */ -} /* qpak_deleteDirentry */ - - -static QPAKdirectory *qpak_newDirectory(char *name) -{ - QPAKdirectory *dir = (QPAKdirectory *) malloc(sizeof (QPAKdirectory)); - BAIL_IF_MACRO(dir == NULL, ERR_OUT_OF_MEMORY, 0); - - strcpy(dir->name, name); - dir->dirs = NULL; - dir->next = NULL; - dir->files = NULL; - - return dir; -} /* qpak_newDirectory */ - - -static void qpak_deleteDirectory(QPAKdirectory *d) -{ - while (d != NULL) - { - QPAKdirectory *next = d->next; - qpak_deleteDirentry(d->files); - qpak_deleteDirectory(d->dirs); - free(d); - d = next; - } /* while */ -} /* qpak_deleteDirectory */ - - -static int qpak_addFile(QPAKdirectory *dir, char *name, QPAKentry *entry) -{ - QPAKdirentry *file = qpak_newDirentry(name, entry); - if (file == NULL) - return(0); - - /* !!! FIXME: Traversing a linkedlist gets slower with each added file. */ - if (dir->files == NULL) - { - dir->files = file; - } /* if */ - else - { - QPAKdirentry *tail = dir->files; - while (tail->next != NULL) - tail = tail->next; - - tail->next = file; - } /* else */ - - return(1); -} /* qpak_addFile */ - - -static QPAKdirectory *qpak_findDirectory(QPAKdirectory *root, const char *name) -{ - char *p = strchr(name, '/'); - - if (p == NULL) - { - QPAKdirectory *thisDir = root->dirs; - while (thisDir != NULL) - { - if (__PHYSFS_platformStricmp(thisDir->name, name) == 0) - return(thisDir); - thisDir = thisDir->next; - } /* while */ - } /* if */ - - else - { - char temp[QPAK_MAXDIRLEN]; - QPAKdirectory *thisDir = root->dirs; - - strncpy (temp, name, p - name); - temp[p - name] = '\0'; - - while (thisDir != NULL) - { - if (__PHYSFS_platformStricmp(thisDir->name, temp) == 0) - return(qpak_findDirectory(thisDir, p + 1)); - thisDir = thisDir->next; - } /* while */ - } /* else */ - - BAIL_MACRO(ERR_NO_SUCH_PATH, 0); -} /* qpak_findDirectory */ - - -static QPAKdirectory *qpak_addDir(QPAKdirectory *dir, char *name) -{ - QPAKdirectory *newDir = qpak_findDirectory(dir, name); - if (newDir != 0) - return(newDir); - - newDir = qpak_newDirectory(name); - if (newDir == 0) - return 0; - - if (dir->dirs == NULL) - { - dir->dirs = newDir; - } /* if */ - - else - { - QPAKdirectory *tail = dir->dirs; - while (tail->next != NULL) - tail = tail->next; - - tail->next = newDir; - } /* else */ - - return(newDir); -} /* qpak_addDir */ - - -static int qpak_addEntry(QPAKdirectory *dir, char *name, QPAKentry *entry) -{ - char tempName[QPAK_MAXDIRLEN]; - QPAKdirectory *child; - char *p = strchr(name, '/'); - if (p == NULL) - return(qpak_addFile(dir, name, entry)); - - strncpy(tempName, name, p - name); - tempName[p - name] = '\0'; - - child = qpak_addDir(dir, tempName); - return(qpak_addEntry(child, p + 1, entry)); -} /* qpak_addEntry */ - - -static QPAKentry *qpak_findEntry(QPAKdirectory *root, const char *name) -{ - QPAKdirectory *dir = NULL; - QPAKdirentry *thisFile = NULL; - const char *t = strrchr(name, '/'); - - if (t == NULL) - { - dir = root; - t = name; - } /* if */ - - else - { - char temp[QPAK_MAXDIRLEN]; - strncpy(temp, name, t - name); - temp[t - name] = '\0'; - dir = qpak_findDirectory(root, temp); - t++; - } /* else */ - - if (dir == NULL) - return(0); - - thisFile = dir->files; - - while (thisFile != NULL) - { - if (__PHYSFS_platformStricmp(thisFile->name, t) == 0) - return(thisFile->entry); - - thisFile = thisFile->next; - } /* while */ - - BAIL_MACRO(ERR_NO_SUCH_FILE, 0); -} /* qpak_findEntry */ - - -static int qpak_populateDirectories(QPAKentry *entries, int numEntries, - QPAKdirectory *root) -{ - PHYSFS_sint32 i; - QPAKentry *entry = entries; - - for (i = 0; i < numEntries; i++, entry++) - { - if (qpak_addEntry(root, entry->name, entry) == 0) - return(0); - } /* for */ - - return(1); -} /* qpak_populateDirectories */ - - -static void qpak_deletePakInfo(QPAKinfo *pakInfo) -{ - if (pakInfo->handle != NULL) - __PHYSFS_platformClose(pakInfo->handle); - - if (pakInfo->filename != NULL) - free(pakInfo->filename); - - if (pakInfo->entries != NULL) - free(pakInfo->entries); - - qpak_deleteDirectory(pakInfo->root); - - free(pakInfo); -} /* qpak_deletePakInfo */ - - -static int qpak_entry_cmp(void *_a, PHYSFS_uint32 one, PHYSFS_uint32 two) -{ - QPAKentry *a = (QPAKentry *) _a; - return(strcmp(a[one].name, a[two].name)); -} /* qpak_entry_cmp */ - - -static void qpak_entry_swap(void *_a, PHYSFS_uint32 one, PHYSFS_uint32 two) -{ - QPAKentry tmp; - QPAKentry *first = &(((QPAKentry *) _a)[one]); - QPAKentry *second = &(((QPAKentry *) _a)[two]); - memcpy(&tmp, first, sizeof (QPAKentry)); - memcpy(first, second, sizeof (QPAKentry)); - memcpy(second, &tmp, sizeof (QPAKentry)); -} /* qpak_entry_swap */ - - -static DirHandle *QPAK_openArchive(const char *name, int forWriting) -{ - void *fh = NULL; - PHYSFS_uint32 dirOffset, dirLength; - QPAKinfo *pi; - DirHandle *retval; - - retval = (DirHandle *) malloc(sizeof (DirHandle)); - BAIL_IF_MACRO(retval == NULL, ERR_OUT_OF_MEMORY, NULL); - - pi = (QPAKinfo *) malloc(sizeof (QPAKinfo)); - if (pi == NULL) - { - free(retval); - BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL); - } /* if */ - - retval->opaque = pi; - - pi->filename = (char *) malloc(strlen(name) + 1); - if (pi->filename == NULL) - { - __PHYSFS_setError(ERR_OUT_OF_MEMORY); - goto QPAK_openArchive_failed; - } /* if */ - - if (!openQPak(name, forWriting, &fh)) - goto QPAK_openArchive_failed; - - if (!readui32(fh, &dirOffset)) - goto QPAK_openArchive_failed; - - if (!readui32(fh, &dirLength)) - goto QPAK_openArchive_failed; - - if (__PHYSFS_platformFileLength(fh) < dirOffset + dirLength) - goto QPAK_openArchive_failed; - - strcpy(pi->filename, name); - pi->handle = fh; - pi->dirOffset = dirOffset; - pi->totalEntries = dirLength / 64; - - pi->entries = (QPAKentry *) malloc(pi->totalEntries * sizeof (QPAKentry)); - if (pi->entries == NULL) - { - __PHYSFS_setError(ERR_OUT_OF_MEMORY); - goto QPAK_openArchive_failed; - } /* if */ - - if (qpak_loadEntries(fh, dirOffset, pi->totalEntries, pi->entries) == 0) - goto QPAK_openArchive_failed; - - __PHYSFS_sort(pi->entries, pi->totalEntries, - qpak_entry_cmp, qpak_entry_swap); - - pi->root = qpak_newDirectory(""); - if (pi->root == NULL) - goto QPAK_openArchive_failed; - - if (qpak_populateDirectories(pi->entries, pi->totalEntries, pi->root) == 0) - goto QPAK_openArchive_failed; - - retval->funcs = &__PHYSFS_DirFunctions_QPAK; - return(retval); - -QPAK_openArchive_failed: - if (retval != NULL) - { - if (retval->opaque != NULL) - qpak_deletePakInfo((QPAKinfo *) retval->opaque); - - free(retval); - } /* if */ - - if (fh != NULL) - __PHYSFS_platformClose(fh); - - return(0); -} /* QPAK_openArchive */ - - -static void QPAK_dirClose(DirHandle *dirHandle) -{ - qpak_deletePakInfo((QPAKinfo *) dirHandle->opaque); - free(dirHandle); -} /* QPAK_dirClose */ - - -static LinkedStringList *QPAK_enumerateFiles(DirHandle *h, const char *dirname, - int omitSymLinks) -{ - LinkedStringList *retval = NULL, *p = NULL; - QPAKdirectory *dir; - QPAKinfo *info = (QPAKinfo *) h->opaque; - - if ((dirname == NULL) || (*dirname == '\0')) - dir = info->root; - else - dir = qpak_findDirectory(info->root, dirname); - - if (dir != NULL) - { - QPAKdirectory *child = dir->dirs; - QPAKdirentry *file = dir->files; - - while (child != NULL) - { - retval = __PHYSFS_addToLinkedStringList(retval, &p, child->name, -1); - child = child->next; - } /* while */ - - while (file != NULL) - { - retval = __PHYSFS_addToLinkedStringList(retval, &p, file->name, -1); - file = file->next; - } /* while */ - } /* if */ - - return(retval); -} /* QPAK_enumerateFiles */ - - -static int QPAK_exists(DirHandle *h, const char *name) -{ - QPAKinfo *driver = (QPAKinfo *) h->opaque; - - if ((name == NULL) || (*name == '\0')) - return(0); - - if (qpak_findDirectory(driver->root, name) != 0) - return(1); - - if (qpak_findEntry(driver->root, name) != 0) - return(1); - - return(0); -} /* QPAK_exists */ - - -static int QPAK_isDirectory(DirHandle *h, const char *name, int *fileExists) -{ - QPAKinfo *info = (QPAKinfo *) h->opaque; - *fileExists = (qpak_findDirectory(info->root, name) != 0); - return(*fileExists); -} /* QPAK_isDirectory */ - - -static int QPAK_isSymLink(DirHandle *h, const char *name, int *fileExists) -{ - *fileExists = QPAK_exists(h, name); - return(0); /* we don't support symlinks for now */ -} /* QPAK_isSymlink */ - - -static int QPAK_remove(DirHandle *h, const char *name) -{ - BAIL_MACRO(ERR_NOT_SUPPORTED, 0); -} /* QPAK_remove */ - - -static int QPAK_mkdir(DirHandle *h, const char *name) -{ - BAIL_MACRO(ERR_NOT_SUPPORTED, 0); -} /* QPAK_mkdir */ - - -static PHYSFS_sint64 QPAK_getLastModTime(DirHandle *h, - const char *name, - int *fileExists) -{ - QPAKinfo *info = (QPAKinfo *) h->opaque; - PHYSFS_sint64 retval = -1; - - *fileExists = QPAK_exists(h, name); - if (*fileExists) - retval = __PHYSFS_platformGetLastModTime(info->filename); - - return(retval); -} /* QPAK_getLastModTime */ - - -static void *qpak_getFileHandle(const char *name, QPAKentry *entry) -{ - void *retval = __PHYSFS_platformOpenRead(name); - if (retval == NULL) - return(NULL); - - if (!__PHYSFS_platformSeek(retval, entry->offset)) - { - __PHYSFS_platformClose(retval); - return(NULL); - } /* if */ - - return(retval); -} /* qpak_getFileHandle */ - - -static FileHandle *QPAK_openRead(DirHandle *h, const char *fnm, int *fileExists) -{ - QPAKinfo *driver = (QPAKinfo *) h->opaque; - QPAKentry *entry = qpak_findEntry(driver->root, fnm); - QPAKfileinfo *fileDriver = 0; - FileHandle *result = 0; - - *fileExists = (entry != NULL); - if (entry == NULL) - return(NULL); - - fileDriver = (QPAKfileinfo *) malloc(sizeof (QPAKfileinfo)); - BAIL_IF_MACRO(fileDriver == NULL, ERR_OUT_OF_MEMORY, NULL); - - fileDriver->handle = qpak_getFileHandle(driver->filename, entry); - if (fileDriver->handle == NULL) - { - free(fileDriver); - return(NULL); - } /* if */ - - fileDriver->entry = entry; - fileDriver->curPos = 0; - - result = (FileHandle *)malloc(sizeof (FileHandle)); - if (result == NULL) - { - __PHYSFS_platformClose(fileDriver->handle); - free(fileDriver); - BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL); - } /* if */ - - result->opaque = fileDriver; - result->dirHandle = h; - result->funcs = &__PHYSFS_FileFunctions_QPAK; - return(result); -} /* QPAK_openRead */ - - -static FileHandle *QPAK_openWrite(DirHandle *h, const char *name) -{ - BAIL_MACRO(ERR_NOT_SUPPORTED, NULL); -} /* QPAK_openWrite */ - - -static FileHandle *QPAK_openAppend(DirHandle *h, const char *name) -{ - BAIL_MACRO(ERR_NOT_SUPPORTED, NULL); -} /* QPAK_openAppend */ - - -static PHYSFS_sint64 QPAK_read(FileHandle *handle, void *buffer, - PHYSFS_uint32 objSize, PHYSFS_uint32 objCount) -{ - QPAKfileinfo *finfo = (QPAKfileinfo *) (handle->opaque); - QPAKentry *entry = finfo->entry; - PHYSFS_uint64 bytesLeft = entry->size - finfo->curPos; - PHYSFS_uint64 objsLeft = (bytesLeft / objSize); - PHYSFS_sint64 rc; - - if (objsLeft < objCount) - objCount = (PHYSFS_uint32) objsLeft; - - rc = __PHYSFS_platformRead(finfo->handle, buffer, objSize, objCount); - if (rc > 0) - finfo->curPos += (rc * objSize); - - return(rc); -} /* QPAK_read */ - - -static PHYSFS_sint64 QPAK_write(FileHandle *handle, const void *buffer, - PHYSFS_uint32 objSize, PHYSFS_uint32 objCount) -{ - BAIL_MACRO(ERR_NOT_SUPPORTED, -1); -} /* QPAK_write */ - - -static int QPAK_eof(FileHandle *handle) -{ - QPAKfileinfo *finfo = (QPAKfileinfo *) (handle->opaque); - QPAKentry *entry = finfo->entry; - - return(finfo->curPos >= (PHYSFS_sint64) entry->size); -} /* QPAK_eof */ - - -static PHYSFS_sint64 QPAK_tell(FileHandle *handle) -{ - return(((QPAKfileinfo *) handle->opaque)->curPos); -} /* QPAK_tell */ - - -static int QPAK_seek(FileHandle *handle, PHYSFS_uint64 offset) -{ - QPAKfileinfo *finfo = (QPAKfileinfo *) handle->opaque; - QPAKentry *entry = finfo->entry; - PHYSFS_uint64 newPos = entry->offset + offset; - int rc; - - BAIL_IF_MACRO(offset < 0, ERR_INVALID_ARGUMENT, 0); - BAIL_IF_MACRO(newPos > entry->offset + entry->size, ERR_PAST_EOF, 0); - rc = __PHYSFS_platformSeek(finfo->handle, newPos); - if (rc) - finfo->curPos = offset; - - return(rc); -} /* QPAK_seek */ - - -static PHYSFS_sint64 QPAK_fileLength(FileHandle *handle) -{ - return ((QPAKfileinfo *) handle->opaque)->entry->size; -} /* QPAK_fileLength */ - - -static int QPAK_fileClose(FileHandle *handle) -{ - QPAKfileinfo *finfo = (QPAKfileinfo *) handle->opaque; - BAIL_IF_MACRO(!__PHYSFS_platformClose(finfo->handle), NULL, 0); - free(finfo); - free(handle); - return(1); -} /* QPAK_fileClose */ - -#endif /* defined PHYSFS_SUPPORTS_QPAK */ - -/* end of qpak.c ... */ - - diff --git a/configure.in b/configure.in index a04162ad..9b9868ec 100644 --- a/configure.in +++ b/configure.in @@ -282,31 +282,6 @@ if test x$physfslang = xenglish; then AC_DEFINE([PHYSFS_LANG], PHYSFS_LANG_ENGLISH, [define desired natural language]) fi -if test x$physfslang = xrussian-koi8-r; then - physfs_valid_lang=yes - AC_DEFINE([PHYSFS_LANG], PHYSFS_LANG_RUSSIAN_KOI8_R, [define desired natural language]) -fi - -if test x$physfslang = xrussian-cp1251; then - physfs_valid_lang=yes - AC_DEFINE([PHYSFS_LANG], PHYSFS_LANG_RUSSIAN_CP866, [define desired natural language]) -fi - -if test x$physfslang = xrussian-cp866; then - physfs_valid_lang=yes - AC_DEFINE([PHYSFS_LANG], PHYSFS_LANG_RUSSIAN_CP866, [define desired natural language]) -fi - -if test x$physfslang = xrussian-iso-8859-5; then - physfs_valid_lang=yes - AC_DEFINE([PHYSFS_LANG], PHYSFS_LANG_RUSSIAN_ISO_8859_5, [define desired natural language]) -fi - -if test x$physfslang = xspanish; then - physfs_valid_lang=yes - AC_DEFINE([PHYSFS_LANG], PHYSFS_LANG_SPANISH, [define desired natural language]) -fi - if test x$physfslang = xfrench; then physfs_valid_lang=yes AC_DEFINE([PHYSFS_LANG], PHYSFS_LANG_FRENCH, [define desired natural language]) @@ -332,13 +307,8 @@ if test x$physfs_valid_lang = xno; then AC_MSG_WARN([***]) AC_MSG_WARN([*** Currently known languages:]) AC_MSG_WARN([*** --enable-language=english]) - AC_MSG_WARN([*** --enable-language=spanish]) AC_MSG_WARN([*** --enable-language=german]) AC_MSG_WARN([*** --enable-language=french]) - AC_MSG_WARN([*** --enable-language=russian-koi8-r]) - AC_MSG_WARN([*** --enable-language=russian-cp1251]) - AC_MSG_WARN([*** --enable-language=russian-cp866]) - AC_MSG_WARN([*** --enable-language=russian-iso-8859-5]) AC_MSG_WARN([***]) AC_MSG_ERROR([*** unsupported language. stop.]) fi diff --git a/debian/copyright b/debian/copyright index 0a11e27b..c79b0e13 100644 --- a/debian/copyright +++ b/debian/copyright @@ -7,7 +7,27 @@ Upstream Author(s): Ryan Gordon This software is copyright (c) 2001-02 by Ryan Gordon, icculus.org. -You are free to distribute this software under the terms of the GNU Lesser -General Public License. -On Debian systems, the complete text of the GNU Lesser General Public License -can be found in the file `/usr/share/common-licenses/LGPL'. +This library is distributed under the terms of the zlib license: + + Copyright (c) 2003 Ryan C. Gordon and others. + + This software is provided 'as-is', without any express or implied warranty. + In no event will the authors be held liable for any damages arising from + the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software in a + product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source distribution. + + Ryan C. Gordon + diff --git a/extras/globbing.c b/extras/globbing.c index 17f351ec..11a1e4e5 100644 --- a/extras/globbing.c +++ b/extras/globbing.c @@ -18,10 +18,11 @@ * verbatim into a closed-source project, exploiting it commercially, and * removing any trace of my name from the source (although I hope you won't * do that). I welcome enhancements and corrections to this file, but I do - * not require you to send me patches if you make changes. + * not require you to send me patches if you make changes. This code has + * NO WARRANTY. * - * Unless otherwise stated, the rest of PhysicsFS falls under the GNU Lesser - * General Public License: http://www.gnu.org/licenses/lgpl.txt + * Unless otherwise stated, the rest of PhysicsFS falls under the zlib license. + * Please see LICENSE in the root of the source tree. * * \author Ryan C. Gordon. */ diff --git a/extras/globbing.h b/extras/globbing.h index 96341943..a25e1e9a 100644 --- a/extras/globbing.h +++ b/extras/globbing.h @@ -21,10 +21,11 @@ * verbatim into a closed-source project, exploiting it commercially, and * removing any trace of my name from the source (although I hope you won't * do that). I welcome enhancements and corrections to this file, but I do - * not require you to send me patches if you make changes. + * not require you to send me patches if you make changes. This code has + * NO WARRANTY. * - * Unless otherwise stated, the rest of PhysicsFS falls under the GNU Lesser - * General Public License: http://www.gnu.org/licenses/lgpl.txt + * Unless otherwise stated, the rest of PhysicsFS falls under the zlib license. + * Please see LICENSE in the root of the source tree. * * \author Ryan C. Gordon. */ diff --git a/extras/ignorecase.c b/extras/ignorecase.c index b53affda..3ad8624f 100644 --- a/extras/ignorecase.c +++ b/extras/ignorecase.c @@ -18,10 +18,11 @@ * verbatim into a closed-source project, exploiting it commercially, and * removing any trace of my name from the source (although I hope you won't * do that). I welcome enhancements and corrections to this file, but I do - * not require you to send me patches if you make changes. + * not require you to send me patches if you make changes. This code has + * NO WARRANTY. * - * Unless otherwise stated, the rest of PhysicsFS falls under the GNU Lesser - * General Public License: http://www.gnu.org/licenses/lgpl.txt + * Unless otherwise stated, the rest of PhysicsFS falls under the zlib license. + * Please see LICENSE in the root of the source tree. * * \author Ryan C. Gordon. */ diff --git a/extras/ignorecase.h b/extras/ignorecase.h index 9523f7dc..873202e0 100644 --- a/extras/ignorecase.h +++ b/extras/ignorecase.h @@ -35,10 +35,11 @@ * verbatim into a closed-source project, exploiting it commercially, and * removing any trace of my name from the source (although I hope you won't * do that). I welcome enhancements and corrections to this file, but I do - * not require you to send me patches if you make changes. + * not require you to send me patches if you make changes. This code has + * NO WARRANTY. * - * Unless otherwise stated, the rest of PhysicsFS falls under the GNU Lesser - * General Public License: http://www.gnu.org/licenses/lgpl.txt + * Unless otherwise stated, the rest of PhysicsFS falls under the zlib license. + * Please see LICENSE in the root of the source tree. * * \author Ryan C. Gordon. */ diff --git a/extras/physfs_rb/installer.rb b/extras/physfs_rb/installer.rb deleted file mode 100644 index 9d8bca0a..00000000 --- a/extras/physfs_rb/installer.rb +++ /dev/null @@ -1,103 +0,0 @@ -# $Id: installer.rb,v 1.1 2002/12/11 15:37:23 icculus Exp $ - -require 'rbconfig' -require 'find' -require 'ftools' - -include Config - -module Slimb - class Installer - def initialize target_dir = "", &user_skip - @user_skip = user_skip or proc {|f| false} - - @version = CONFIG["MAJOR"] + "." + CONFIG["MINOR"] - @libdir = File.join(CONFIG["libdir"], "ruby", @version) - @sitedir = CONFIG["sitedir"] || File.join(@libdir, "site_ruby") - @dest = File.join @sitedir, target_dir - - File::makedirs @dest - File::chmod 0755, @dest, true - end - - def skip? file - @user_skip[file] or - file[0] == ?. or file[-1] == ?~ or file[-1] == ?# - end - - def install_dir dir - File::makedirs(File.join(@dest, dir)) - File::chmod(0755, File.join(@dest, dir), true) - Dir.foreach(dir) {|file| - next if skip? file - - if File.ftype(File.join(dir, file)) == "directory" - install_dir File.join(dir, file) - else - install_file File.join(dir, file) - end - } - end - - def install_file file - if file =~ /\.so$/ - install_so file - else - File::install file, File.join(@dest, file), 0644, true - end - end - - def install_so file - File::install file, File.join(CONFIG["sitearchdir"], file), 0644, true - end - - def uninstall_so file - file = File.join(CONFIG["sitearchdir"], file) - File::safe_unlink file - end - - def install something - case something - when Array - something.each {|x| - install x if x.is_a? String - } - when String - if File.ftype(something) == "directory" - install_dir something - else - install_file something - end - end - end - - def uninstall what = "*" - case what - when Array - files = what.map {|x| File.join(@dest, x)} - when String - files = Dir[File.join(@dest, what)] - end - - files.each {|x| - # FIXME: recursive uninstall is a must - next if FileTest.directory? x - File::safe_unlink x - } - end - - def run files, argv - if !argv.grep(/--uninstall/).empty? - uninstall files - else - install files - end - end - end -end - -# self-installation -if $0 == __FILE__ - $stderr.puts "Installing slimb installer..." - Slimb::Installer.new("slimb").install File.basename(__FILE__) -end diff --git a/extras/physfs_rb/physfs/extconf.rb b/extras/physfs_rb/physfs/extconf.rb deleted file mode 100644 index f344059c..00000000 --- a/extras/physfs_rb/physfs/extconf.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'mkmf' - -$CFLAGS += `sdl-config --cflags`.chomp -$LDFLAGS += `sdl-config --libs`.chomp - -have_library "physfs", "PHYSFS_init" -have_library "SDL", "SDL_AllocRW" - -create_makefile "physfs_so" diff --git a/extras/physfs_rb/physfs/install.rb b/extras/physfs_rb/physfs/install.rb deleted file mode 100644 index 29bd4548..00000000 --- a/extras/physfs_rb/physfs/install.rb +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/local/bin/ruby - -if __FILE__ == $0 - require 'slimb/installer' - files = ["physfs.rb", "physfs_so.so"] - installer = Slimb::Installer.new.run files, ARGV -end diff --git a/extras/physfs_rb/physfs/make_install_test.sh b/extras/physfs_rb/physfs/make_install_test.sh deleted file mode 100755 index ac616c84..00000000 --- a/extras/physfs_rb/physfs/make_install_test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -ruby extconf.rb -make -cd .. -ruby installer.rb -cd physfs -ruby install.rb -cd test -ruby test_physfs.rb \ No newline at end of file diff --git a/extras/physfs_rb/physfs/physfs.rb b/extras/physfs_rb/physfs/physfs.rb deleted file mode 100644 index 88da331b..00000000 --- a/extras/physfs_rb/physfs/physfs.rb +++ /dev/null @@ -1,121 +0,0 @@ -# -# PhysicsFS - ruby interface -# -# Author: Ed Sinjiashvili (slimb@vlinkmail.com) -# License: LGPL -# - -require 'physfs_so' - -module PhysicsFS - - class Version - def initialize major, minor, patch - @major = major - @minor = minor - @patch = patch - end - - attr_reader :major, :minor, :patch - - def to_s - "#@major.#@minor.#@patch" - end - end - - class ArchiveInfo - def initialize ext, desc, author, url - @extension = ext - @description = desc - @author = author - @url = url - end - - attr_reader :extension, :description - attr_reader :author, :url - - def to_s - " * #@extension: #@description\n Written by #@author.\n #@url\n" - end - end - - # - # convenience methods - # - class << self - - def init argv0 = $0 - init_internal argv0 - end - - def append_search_path str - add_to_search_path str, 1 - self - end - - def prepend_search_path str - add_to_search_path str, 0 - self - end - - alias_method :<<, :append_search_path - alias_method :push, :append_search_path - alias_method :unshift, :prepend_search_path - - def ls path = "" - enumerate path - end - end - - # - # File - PhysicsFS abstract file - can be drawn from various sources - # - class File - def write_str str - write str, 1, str.length - end - - def cat - prev_pos = tell - seek 0 - r = read length, 1 - seek prev_pos - r - end - - alias_method :size, :length - end - - # - # RWops - general stdio like operations on file-like creatures - # - class RWops - SEEK_SET = 0 - SEEK_CUR = 1 - SEEK_END = 2 - - # tell current position of RWopted entity - def tell - seek 0, SEEK_CUR - end - - # length of RWops abstracted entity - def length - cur = tell - r = seek 0, SEEK_END - seek cur, SEEK_SET - r - end - - alias_method :size, :length - - # - # create rwops from PhysicsFS file object - # - def self.from_physfs file - file.to_rwops - end - end -end - -# physfs.rb ends here # diff --git a/extras/physfs_rb/physfs/physfsrwops.c b/extras/physfs_rb/physfs/physfsrwops.c deleted file mode 100644 index 474d6b29..00000000 --- a/extras/physfs_rb/physfs/physfsrwops.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - * This code provides a glue layer between PhysicsFS and Simple Directmedia - * Layer's (SDL) RWops i/o abstraction. - * - * License: this code is public domain. I make no warranty that it is useful, - * correct, harmless, or environmentally safe. - * - * This particular file may be used however you like, including copying it - * verbatim into a closed-source project, exploiting it commercially, and - * removing any trace of my name from the source (although I hope you won't - * do that). I welcome enhancements and corrections to this file, but I do - * not require you to send me patches if you make changes. - * - * Unless otherwise stated, the rest of PhysicsFS falls under the GNU Lesser - * General Public License: http://www.gnu.org/licenses/lgpl.txt - * - * SDL falls under the LGPL, too. You can get SDL at http://www.libsdl.org/ - * - * This file was written by Ryan C. Gordon. (icculus@clutteredmind.org). - */ - -#include /* used for SEEK_SET, SEEK_CUR, SEEK_END ... */ -#include "physfsrwops.h" - -static int physfsrwops_seek(SDL_RWops *rw, int offset, int whence) -{ - PHYSFS_file *handle = (PHYSFS_file *) rw->hidden.unknown.data1; - int pos = 0; - - if (whence == SEEK_SET) - { - pos = offset; - } /* if */ - - else if (whence == SEEK_CUR) - { - PHYSFS_sint64 current = PHYSFS_tell(handle); - if (current == -1) - { - SDL_SetError("Can't find position in file: %s", - PHYSFS_getLastError()); - return(-1); - } /* if */ - - pos = (int) current; - if ( ((PHYSFS_sint64) pos) != current ) - { - SDL_SetError("Can't fit current file position in an int!"); - return(-1); - } /* if */ - - if (offset == 0) /* this is a "tell" call. We're done. */ - return(pos); - - pos += offset; - } /* else if */ - - else if (whence == SEEK_END) - { - PHYSFS_sint64 len = PHYSFS_fileLength(handle); - if (len == -1) - { - SDL_SetError("Can't find end of file: %s", PHYSFS_getLastError()); - return(-1); - } /* if */ - - pos = (int) len; - if ( ((PHYSFS_sint64) pos) != len ) - { - SDL_SetError("Can't fit end-of-file position in an int!"); - return(-1); - } /* if */ - - pos += offset; - } /* else if */ - - else - { - SDL_SetError("Invalid 'whence' parameter."); - return(-1); - } /* else */ - - if ( pos < 0 ) - { - SDL_SetError("Attempt to seek past start of file."); - return(-1); - } /* if */ - - if (!PHYSFS_seek(handle, (PHYSFS_uint64) pos)) - { - SDL_SetError("PhysicsFS error: %s", PHYSFS_getLastError()); - return(-1); - } /* if */ - - return(pos); -} /* physfsrwops_seek */ - - -static int physfsrwops_read(SDL_RWops *rw, void *ptr, int size, int maxnum) -{ - PHYSFS_file *handle = (PHYSFS_file *) rw->hidden.unknown.data1; - PHYSFS_sint64 rc = PHYSFS_read(handle, ptr, size, maxnum); - if (rc != maxnum) - { - if (!PHYSFS_eof(handle)) /* not EOF? Must be an error. */ - SDL_SetError("PhysicsFS error: %s", PHYSFS_getLastError()); - } /* if */ - - return((int) rc); -} /* physfsrwops_read */ - - -static int physfsrwops_write(SDL_RWops *rw, const void *ptr, int size, int num) -{ - PHYSFS_file *handle = (PHYSFS_file *) rw->hidden.unknown.data1; - PHYSFS_sint64 rc = PHYSFS_write(handle, ptr, size, num); - if (rc != num) - SDL_SetError("PhysicsFS error: %s", PHYSFS_getLastError()); - - return((int) rc); -} /* physfsrwops_write */ - - -static int physfsrwops_close(SDL_RWops *rw) -{ - PHYSFS_file *handle = (PHYSFS_file *) rw->hidden.unknown.data1; - if (!PHYSFS_close(handle)) - { - SDL_SetError("PhysicsFS error: %s", PHYSFS_getLastError()); - return(-1); - } /* if */ - - SDL_FreeRW(rw); - return(0); -} /* physfsrwops_close */ - - -static SDL_RWops *create_rwops(PHYSFS_file *handle) -{ - SDL_RWops *retval = NULL; - - if (handle == NULL) - SDL_SetError("PhysicsFS error: %s", PHYSFS_getLastError()); - else - { - retval = SDL_AllocRW(); - if (retval != NULL) - { - retval->seek = physfsrwops_seek; - retval->read = physfsrwops_read; - retval->write = physfsrwops_write; - retval->close = physfsrwops_close; - retval->hidden.unknown.data1 = handle; - } /* if */ - } /* else */ - - return(retval); -} /* create_rwops */ - - -SDL_RWops *PHYSFSRWOPS_makeRWops(PHYSFS_file *handle) -{ - SDL_RWops *retval = NULL; - if (handle == NULL) - SDL_SetError("NULL pointer passed to PHYSFSRWOPS_makeRWops()."); - else - retval = create_rwops(handle); - - return(retval); -} /* PHYSFSRWOPS_makeRWops */ - - -SDL_RWops *PHYSFSRWOPS_openRead(const char *fname) -{ - return(create_rwops(PHYSFS_openRead(fname))); -} /* PHYSFSRWOPS_openRead */ - - -SDL_RWops *PHYSFSRWOPS_openWrite(const char *fname) -{ - return(create_rwops(PHYSFS_openWrite(fname))); -} /* PHYSFSRWOPS_openWrite */ - - -SDL_RWops *PHYSFSRWOPS_openAppend(const char *fname) -{ - return(create_rwops(PHYSFS_openAppend(fname))); -} /* PHYSFSRWOPS_openAppend */ - - -/* end of physfsrwops.c ... */ - diff --git a/extras/physfs_rb/physfs/physfsrwops.h b/extras/physfs_rb/physfs/physfsrwops.h deleted file mode 100644 index 91ff2eb2..00000000 --- a/extras/physfs_rb/physfs/physfsrwops.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * This code provides a glue layer between PhysicsFS and Simple Directmedia - * Layer's (SDL) RWops i/o abstraction. - * - * License: this code is public domain. I make no warranty that it is useful, - * correct, harmless, or environmentally safe. - * - * This particular file may be used however you like, including copying it - * verbatim into a closed-source project, exploiting it commercially, and - * removing any trace of my name from the source (although I hope you won't - * do that). I welcome enhancements and corrections to this file, but I do - * not require you to send me patches if you make changes. - * - * Unless otherwise stated, the rest of PhysicsFS falls under the GNU Lesser - * General Public License: http://www.gnu.org/licenses/lgpl.txt - * - * SDL falls under the LGPL, too. You can get SDL at http://www.libsdl.org/ - * - * This file was written by Ryan C. Gordon. (icculus@clutteredmind.org). - */ - -#ifndef _INCLUDE_PHYSFSRWOPS_H_ -#define _INCLUDE_PHYSFSRWOPS_H_ - -#include "physfs.h" -#include "SDL.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Open a platform-independent filename for reading, and make it accessible - * via an SDL_RWops structure. The file will be closed in PhysicsFS when the - * RWops is closed. PhysicsFS should be configured to your liking before - * opening files through this method. - * - * @param filename File to open in platform-independent notation. - * @return A valid SDL_RWops structure on success, NULL on error. Specifics - * of the error can be gleaned from PHYSFS_getLastError(). - */ -__EXPORT__ SDL_RWops *PHYSFSRWOPS_openRead(const char *fname); - -/** - * Open a platform-independent filename for writing, and make it accessible - * via an SDL_RWops structure. The file will be closed in PhysicsFS when the - * RWops is closed. PhysicsFS should be configured to your liking before - * opening files through this method. - * - * @param filename File to open in platform-independent notation. - * @return A valid SDL_RWops structure on success, NULL on error. Specifics - * of the error can be gleaned from PHYSFS_getLastError(). - */ -__EXPORT__ SDL_RWops *PHYSFSRWOPS_openWrite(const char *fname); - -/** - * Open a platform-independent filename for appending, and make it accessible - * via an SDL_RWops structure. The file will be closed in PhysicsFS when the - * RWops is closed. PhysicsFS should be configured to your liking before - * opening files through this method. - * - * @param filename File to open in platform-independent notation. - * @return A valid SDL_RWops structure on success, NULL on error. Specifics - * of the error can be gleaned from PHYSFS_getLastError(). - */ -__EXPORT__ SDL_RWops *PHYSFSRWOPS_openAppend(const char *fname); - -/** - * Make a SDL_RWops from an existing PhysicsFS file handle. You should - * dispose of any references to the handle after successful creation of - * the RWops. The actual PhysicsFS handle will be destroyed when the - * RWops is closed. - * - * @param handle a valid PhysicsFS file handle. - * @return A valid SDL_RWops structure on success, NULL on error. Specifics - * of the error can be gleaned from PHYSFS_getLastError(). - */ -__EXPORT__ SDL_RWops *PHYSFSRWOPS_makeRWops(PHYSFS_file *handle); - -#ifdef __cplusplus -} -#endif - -#endif /* include-once blocker */ - -/* end of physfsrwops.h ... */ - diff --git a/extras/physfs_rb/physfs/rb_physfs.c b/extras/physfs_rb/physfs/rb_physfs.c deleted file mode 100644 index f05c586a..00000000 --- a/extras/physfs_rb/physfs/rb_physfs.c +++ /dev/null @@ -1,462 +0,0 @@ -/* - * PhysicsFS - ruby interface - * - * Author:: Ed Sinjiashvili (slimb@vlinkmail.com) - * License:: LGPL - */ - -#include "physfs.h" -#include "ruby.h" - -#include "rb_physfs.h" -#include "rb_physfs_file.h" - -VALUE modulePhysfs; - -/* - * PhysicsFS::init str - * - * initialize PhysicsFS - */ -VALUE physfs_init (VALUE self, VALUE str) -{ - int result = PHYSFS_init (STR2CSTR(str)); - - if (result) - return Qtrue; - - return Qfalse; -} - -/* - * PhysicsFS::deinit - */ -VALUE physfs_deinit (VALUE self) -{ - if (PHYSFS_deinit ()) - return Qtrue; - - return Qfalse; -} - -/* - * PhysicsFS::version - * - * return PhysicsFS::Version object - */ -VALUE physfs_version (VALUE self) -{ - char evalStr[200]; - PHYSFS_Version ver; - - PHYSFS_getLinkedVersion (&ver); - - sprintf (evalStr, "PhysicsFS::Version.new %d, %d, %d", - ver.major, ver.minor, ver.patch); - return rb_eval_string (evalStr); -} - -/* - * PhysicsFS::supported_archives - * - * return Array of PhysicsFS::ArchiveInfo objects - */ -VALUE physfs_supported_archives (VALUE self) -{ - const PHYSFS_ArchiveInfo **info = PHYSFS_supportedArchiveTypes(); - VALUE klass = rb_const_get (modulePhysfs, rb_intern ("ArchiveInfo")); - VALUE ary = rb_ary_new (); - VALUE params[4]; - - while ( *info != 0 ) - { - params[0] = rb_str_new2 ((*info)->extension); - params[1] = rb_str_new2 ((*info)->description); - params[2] = rb_str_new2 ((*info)->author); - params[3] = rb_str_new2 ((*info)->url); - - rb_ary_push (ary, rb_class_new_instance (4, params, klass)); - info++; - } - - return ary; -} - -/* - * PhysicsFS::last_error - * - * return string representation of last PhysicsFS error - */ -VALUE physfs_last_error (VALUE self) -{ - const char *last_error = PHYSFS_getLastError (); - - if (last_error == 0) - last_error = ""; - - return rb_str_new2 (last_error); -} - -/* - * PhysicsFS::dir_separator - * - * return platform directory separator - */ -VALUE physfs_dir_separator (VALUE self) -{ - return rb_str_new2 (PHYSFS_getDirSeparator ()); -} - -/* - * PhysicsFS::permit_symlinks boolValue - * - * turn symlinks support on/off - */ -VALUE physfs_permit_symlinks (VALUE self, VALUE allow) -{ - int p = 1; - - if (allow == Qfalse || allow == Qnil) - p = 0; - - PHYSFS_permitSymbolicLinks (p); - return Qtrue; -} - -/* - * PhysicsFS::cdrom_dirs - * - * return Array of strings containing available CDs - */ -VALUE physfs_cdrom_dirs (VALUE self) -{ - char **cds = PHYSFS_getCdRomDirs(); - char **i; - VALUE ary = rb_ary_new (); - - for (i = cds; *i != 0; i++) - rb_ary_push (ary, rb_str_new2 (*i)); - - PHYSFS_freeList (cds); - return ary; -} - -/* - * PhysicsFS::base_dir - * - * return base directory - */ -VALUE physfs_base_dir (VALUE self) -{ - const char *base_dir = PHYSFS_getBaseDir (); - if (base_dir == 0) - base_dir = ""; - - return rb_str_new2 (base_dir); -} - -/* - * PhysicsFS::user_dir - * - * return user directory - */ -VALUE physfs_user_dir (VALUE self) -{ - const char *user_dir = PHYSFS_getBaseDir (); - if (user_dir == 0) - user_dir = ""; - - return rb_str_new2 (user_dir); -} - -/* - * PhysicsFS::write_dir - * - * return write directory - */ -VALUE physfs_write_dir (VALUE self) -{ - const char *write_dir = PHYSFS_getWriteDir (); - if (write_dir == 0) - return Qnil; - - return rb_str_new2 (write_dir); -} - -/* - * PhysicsFS::write_dir= str - * - * set write directory to *str* - */ -VALUE physfs_set_write_dir (VALUE self, VALUE str) -{ - int result = PHYSFS_setWriteDir (STR2CSTR(str)); - - if (result) - return Qtrue; - return Qfalse; -} - -/* - * PhysicsFS::add_to_search_path str, append - * - * if append > 0 - append str to search path, otherwise prepend it - */ -VALUE physfs_add_search_path (VALUE self, VALUE str, VALUE append) -{ - int result = PHYSFS_addToSearchPath (STR2CSTR(str), FIX2INT(append)); - if (result) - return Qtrue; - return Qfalse; -} - -/* - * PhysicsFS::remove_from_search_path str - * - * removes str from search path - */ -VALUE physfs_remove_search_path (VALUE self, VALUE str) -{ - int result = PHYSFS_removeFromSearchPath (STR2CSTR(str)); - if (result) - return Qtrue; - return Qfalse; -} - -/* - * PhysicsFS::search_path - * - * return current search_path - as array of strings - */ -VALUE physfs_search_path (VALUE self) -{ - char **path = PHYSFS_getSearchPath (); - char **i; - VALUE ary = rb_ary_new (); - - for (i = path ; *i != 0; i++) - rb_ary_push (ary, rb_str_new2 (*i)); - - PHYSFS_freeList (path); - return ary; -} - -// -VALUE physfs_setSaneConfig(VALUE self, VALUE org, VALUE app, VALUE ext, - VALUE includeCdroms, VALUE archivesFirst) -{ - int res = PHYSFS_setSaneConfig (STR2CSTR(org), STR2CSTR(app), STR2CSTR(ext), - RTEST(includeCdroms), RTEST(archivesFirst)); - if (res) - return Qtrue; - - return Qfalse; -} - -/* - * PhysicsFS::mkdir newdir - * - * create new directory - */ -VALUE physfs_mkdir (VALUE self, VALUE newdir) -{ - int result = PHYSFS_mkdir (STR2CSTR(newdir)); - if (result) - return Qtrue; - return Qfalse; -} - -/* - * PhysicsFS::delete name - * - * delete file with name - */ -VALUE physfs_delete (VALUE self, VALUE name) -{ - int result = PHYSFS_delete (STR2CSTR(name)); - if (result) - return Qtrue; - return Qfalse; -} - -/* - * PhysicsFS::real_dir name - * - * return real directory (in search path) of a name - */ -VALUE physfs_real_dir (VALUE self, VALUE name) -{ - const char *path = PHYSFS_getRealDir (STR2CSTR(name)); - if (path == 0) - return Qnil; - - return rb_str_new2 (path); -} - -/* - * PhysicsFS::enumerate dir - * - * list a dir from a search path - */ -VALUE physfs_enumerate (VALUE self, VALUE dir) -{ - char **files = PHYSFS_enumerateFiles (STR2CSTR(dir)); - char **i; - VALUE ary = rb_ary_new (); - - for (i = files; *i != 0; i++) - rb_ary_push (ary, rb_str_new2 (*i)); - - PHYSFS_freeList (files); - return ary; -} - -/* - * PhysicsFS::exists? name - * - * does a file with name exist? - */ -VALUE physfs_exists (VALUE self, VALUE name) -{ - int result = PHYSFS_exists (STR2CSTR(name)); - if (result) - return Qtrue; - return Qfalse; -} - -/* - * PhysicsFS::is_directory? name - * - * return true if name is directory - */ -VALUE physfs_is_directory (VALUE self, VALUE name) -{ - int result = PHYSFS_isDirectory (STR2CSTR(name)); - if (result) - return Qtrue; - return Qfalse; -} - -/* - * PhysicsFS::is_symlink? name - * - * return true if name is symlink - */ -VALUE physfs_is_symlink (VALUE self, VALUE name) -{ - int result = PHYSFS_isSymbolicLink (STR2CSTR(name)); - if (result) - return Qtrue; - return Qfalse; -} - -/* - * PhysicsFS::last_mod_time name - * - * return last modification time of a file - */ -VALUE physfs_last_mod_time (VALUE self, VALUE name) -{ - int result = PHYSFS_getLastModTime (STR2CSTR(name)); - - return INT2FIX(result); -} - -/* - * PhysicsFS::open_read name - * - * return +PhysicsFS::File+ ready for reading - */ -VALUE physfs_open_read (VALUE self, VALUE name) -{ - PHYSFS_file *file = PHYSFS_openRead (STR2CSTR(name)); - return physfs_file_new (file); -} - -/* - * PhysicsFS::open_write name - * - * return PhysicsFS::File ready for writing - */ -VALUE physfs_open_write (VALUE self, VALUE name) -{ - PHYSFS_file *file = PHYSFS_openWrite (STR2CSTR(name)); - return physfs_file_new (file); -} - -/* - * PhysicsFS::open_append name - * - * return PhysicsFS::File ready for appending - */ -VALUE physfs_open_append (VALUE self, VALUE name) -{ - PHYSFS_file *file = PHYSFS_openAppend (STR2CSTR(name)); - return physfs_file_new (file); -} - -void Init_physfs_so (void) -{ - modulePhysfs = rb_define_module ("PhysicsFS"); - - rb_define_singleton_method (modulePhysfs, "init_internal", physfs_init, 1); - rb_define_singleton_method (modulePhysfs, "deinit", physfs_deinit, 0); - rb_define_singleton_method (modulePhysfs, "version", physfs_version, 0); - rb_define_singleton_method (modulePhysfs, "supported_archives", - physfs_supported_archives, 0); - rb_define_singleton_method (modulePhysfs, "last_error", - physfs_last_error, 0); - rb_define_singleton_method (modulePhysfs, "dir_separator", - physfs_dir_separator, 0); - rb_define_singleton_method (modulePhysfs, "permit_symlinks", - physfs_permit_symlinks, 1); - rb_define_singleton_method (modulePhysfs, "cdrom_dirs", - physfs_cdrom_dirs, 0); - rb_define_singleton_method (modulePhysfs, "base_dir", physfs_base_dir, 0); - rb_define_singleton_method (modulePhysfs, "user_dir", physfs_user_dir, 0); - - rb_define_singleton_method (modulePhysfs, "write_dir", physfs_write_dir, 0); - rb_define_singleton_method (modulePhysfs, "write_dir=", - physfs_set_write_dir, 1); - - rb_define_singleton_method (modulePhysfs, "add_to_search_path", - physfs_add_search_path, 2); - rb_define_singleton_method (modulePhysfs, "remove_from_search_path", - physfs_remove_search_path, 1); - rb_define_singleton_method (modulePhysfs, "search_path", - physfs_search_path, 0); - - rb_define_singleton_method (modulePhysfs, "set_sane_config", - physfs_setSaneConfig, 5); - - rb_define_singleton_method (modulePhysfs, "mkdir", physfs_mkdir, 1); - rb_define_singleton_method (modulePhysfs, "delete", physfs_delete, 1); - rb_define_singleton_method (modulePhysfs, "real_dir", - physfs_real_dir, 1); - rb_define_singleton_method (modulePhysfs, "enumerate", physfs_enumerate, 1); - rb_define_singleton_method (modulePhysfs, "exists?", physfs_exists, 1); - rb_define_singleton_method (modulePhysfs, "is_directory?", - physfs_is_directory, 1); - rb_define_singleton_method (modulePhysfs, "is_symlink?", - physfs_is_symlink, 1); - rb_define_singleton_method (modulePhysfs, "last_mod_time", - physfs_last_mod_time, 1); - - rb_define_singleton_method (modulePhysfs, "open_read", - physfs_open_read, 1); - rb_define_singleton_method (modulePhysfs, "open_write", - physfs_open_write, 1); - rb_define_singleton_method (modulePhysfs, "open_append", - physfs_open_append, 1); - - init_physfs_file (); - init_sdl_rwops (); -} - -/* -// Local Variables: -// mode: C -// c-indentation-style: "stroustrup" -// indent-tabs-mode: nil -// End: -*/ diff --git a/extras/physfs_rb/physfs/rb_physfs.h b/extras/physfs_rb/physfs/rb_physfs.h deleted file mode 100644 index ca820366..00000000 --- a/extras/physfs_rb/physfs/rb_physfs.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * PhysicsFS - ruby interface - * - * Author:: Ed Sinjiashvili (slimb@vlinkmail.com) - * License:: LGPL - */ - -#ifndef __RB__PHYSFS__H__ -#define __RB__PHYSFS__H__ - -extern VALUE modulePhysfs; - -#endif diff --git a/extras/physfs_rb/physfs/rb_physfs_file.c b/extras/physfs_rb/physfs/rb_physfs_file.c deleted file mode 100644 index 1aaa36e3..00000000 --- a/extras/physfs_rb/physfs/rb_physfs_file.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - * PhysicsFS File abstraction - ruby interface - * - * Author:: Ed Sinjiashvili (slimb@vlinkmail.com) - * License:: LGPL - */ - -#include "physfs.h" -#include "ruby.h" - -#include "rb_physfs.h" -#include "rb_physfs_file.h" -#include "physfsrwops.h" - -VALUE classPhysfsFile; - -/* - * construct new PhysicsFS::File object - */ -VALUE physfs_file_new (PHYSFS_file *file) -{ - if (file == 0) - return Qnil; - - return Data_Wrap_Struct (classPhysfsFile, 0, 0, file); -} - -/* - * PhysicsFS::File#close - * - * Close the file. It's illegal to use the object after its closure. - */ -VALUE physfs_file_close (VALUE self) -{ - int result; - PHYSFS_file *file; - Data_Get_Struct (self, PHYSFS_file, file); - - if (file == 0) - return Qfalse; - - result = PHYSFS_close (file); - DATA_PTR(self) = 0; - - if (result) - return Qtrue; - return Qfalse; -} - -/* - * PhysicsFS::File#read obj_size, num_objects - * - * Read *objCount* objects which are *objSize* each. - * return String instance containing raw data or nil if failure. - * #length of string will reflect real number of objects read. - */ -VALUE physfs_file_read (VALUE self, VALUE objSize, VALUE objCount) -{ - int objRead; - void *buffer; - VALUE result; - PHYSFS_file *file; - - Data_Get_Struct (self, PHYSFS_file, file); - if (file == 0) - return Qnil; //wasted file - no read possible - - buffer = malloc (FIX2UINT(objSize) * FIX2UINT(objCount)); - if (buffer == 0) - return Qnil; - - objRead = PHYSFS_read (file, buffer, FIX2UINT(objSize), FIX2UINT(objCount)); - if (objRead == -1) - { - free (buffer); - return Qnil; - } - - result = rb_str_new (buffer, objRead * FIX2UINT(objSize)); - free (buffer); - return result; -} - -/* - * PhysicsFS::File#write buffer, obj_size, num_objects - * - * return nil on failure or number of objects written. - */ -VALUE physfs_file_write (VALUE self, VALUE buf, VALUE objSize, VALUE objCount) -{ - int result; - PHYSFS_file *file; - - Data_Get_Struct (self, PHYSFS_file, file); - if (file == 0) - return Qnil; - - result = PHYSFS_write (file, STR2CSTR(buf), - FIX2UINT(objSize), FIX2UINT(objCount)); - if (result == -1) - return Qnil; - - return INT2FIX(result); -} - -/* - * PhysicsFS::File#eof? - */ -VALUE physfs_file_eof (VALUE self) -{ - int result; - PHYSFS_file *file; - - Data_Get_Struct (self, PHYSFS_file, file); - if (file == 0) - return Qnil; - - result = PHYSFS_eof (file); - - if (result) - return Qtrue; - - return Qfalse; -} - -/* - * PhysicsFS::File#tell - * - * tells current position in file - */ -VALUE physfs_file_tell (VALUE self) -{ - int result; - PHYSFS_file *file; - - Data_Get_Struct (self, PHYSFS_file, file); - if (file == 0) - return Qnil; - - result = PHYSFS_tell (file); - - if (result == -1) - return Qnil; - - return INT2FIX(result); -} - -/* - * PhysicsFS::File#seek pos - * - * seek to pos in file - */ -VALUE physfs_file_seek (VALUE self, VALUE pos) -{ - int result; - PHYSFS_file *file; - - Data_Get_Struct (self, PHYSFS_file, file); - if (file == 0) - return Qnil; - - result = PHYSFS_seek (file, FIX2LONG(pos)); - - if (result) - return Qtrue; - - return Qfalse; -} - -/* - * PhysicsFS::File#length - */ -VALUE physfs_file_length (VALUE self) -{ - int result; - PHYSFS_file *file; - - Data_Get_Struct (self, PHYSFS_file, file); - if (file == 0) - return Qnil; - - result = PHYSFS_fileLength (file); - - if (result == -1) - return Qnil; - - return INT2FIX(result); -} - -/* - * PhysicsFS::File#to_rwops - * - * File object is converted to RWops object. - * File object becomes unusable after that - every operation - * should be done through new-born RWops object. - */ -VALUE physfs_file_to_rwops (VALUE self) -{ - PHYSFS_file *file; - SDL_RWops *rwops; - - Data_Get_Struct (self, PHYSFS_file, file); - if (file == 0) - return Qnil; - - rwops = PHYSFSRWOPS_makeRWops (file); - if (rwops == 0) - return Qnil; - - DATA_PTR(self) = 0; // oh, gosh, we've sacrificed ourselves! - return sdl_rwops_new (rwops); -} - -void init_physfs_file (void) -{ - classPhysfsFile = rb_define_class_under (modulePhysfs, "File", rb_cObject); - - rb_define_method (classPhysfsFile, "close", physfs_file_close, 0); - rb_define_method (classPhysfsFile, "eof?", physfs_file_eof, 0); - rb_define_method (classPhysfsFile, "tell", physfs_file_tell, 0); - rb_define_method (classPhysfsFile, "seek", physfs_file_seek, 1); - rb_define_method (classPhysfsFile, "length", physfs_file_length, 0); - rb_define_method (classPhysfsFile, "read", physfs_file_read, 2); - rb_define_method (classPhysfsFile, "write", physfs_file_write, 3); - rb_define_method (classPhysfsFile, "to_rwops", physfs_file_to_rwops, 0); -} diff --git a/extras/physfs_rb/physfs/rb_physfs_file.h b/extras/physfs_rb/physfs/rb_physfs_file.h deleted file mode 100644 index 5cc1b218..00000000 --- a/extras/physfs_rb/physfs/rb_physfs_file.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * PhysicsFS File abstraction - ruby interface - * - * Author:: Ed Sinjiashvili (slimb@vlinkmail.com) - * License:: LGPL - */ - -#ifndef __RB__PHYSFS__FILE__H__ -#define __RB__PHYSFS__FILE__H__ - -extern VALUE classPhysfsFile; - -VALUE physfs_file_new (PHYSFS_file *file); -VALUE physfs_file_close (VALUE self); -VALUE physfs_file_read (VALUE self, VALUE objSize, VALUE objCount); -VALUE physfs_file_write (VALUE self, VALUE buf, VALUE objSize, VALUE objCount); -VALUE physfs_file_eof (VALUE self); -VALUE physfs_file_tell (VALUE self); -VALUE physfs_file_seek (VALUE self, VALUE pos); -VALUE physfs_file_length (VALUE self); - -void init_physfs_file (void); - -#endif diff --git a/extras/physfs_rb/physfs/rb_sdl_rwops.c b/extras/physfs_rb/physfs/rb_sdl_rwops.c deleted file mode 100644 index 6574906a..00000000 --- a/extras/physfs_rb/physfs/rb_sdl_rwops.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - * SDL_RWops - ruby interface - * - * Author:: Ed Sinjiashvili (slimb@vlinkmail.com) - * License:: LGPL - */ - -#include "SDL_rwops.h" -#include "ruby.h" - -#include "rb_physfs.h" -#include "rb_sdl_rwops.h" - -VALUE classRWops; - -/* - * RWops constructor - */ -VALUE sdl_rwops_new (SDL_RWops *ops) -{ - VALUE result; - - if (ops == 0) - return Qnil; - - result = Data_Wrap_Struct (classRWops, 0, SDL_FreeRW, ops); - return result; -} - -/* - * PhysicsFS::RWops::from_file name, mode - * - * create RWops object from file - */ -VALUE sdl_rwops_from_file (VALUE self, VALUE name, VALUE mode) -{ - SDL_RWops *ops = SDL_RWFromFile(STR2CSTR(name), STR2CSTR(mode)); - return sdl_rwops_new (ops); -} - -/* - * PhysicsFS::RWops::from_memory string - * - * create RWops object from memory - */ -VALUE sdl_rwops_from_mem (VALUE self, VALUE str) -{ - int len = RSTRING(str)->len; - void *mem = STR2CSTR(str); - SDL_RWops *ops = SDL_RWFromMem(mem, len); - - return sdl_rwops_new (ops); -} - -/* - * PhysicsFS::RWops#seek offset, whence - * - * position RWops object - */ -VALUE sdl_rwops_seek (VALUE self, VALUE offset, VALUE whence) -{ - int result; - SDL_RWops *ops; - - Data_Get_Struct (self, SDL_RWops, ops); - if (ops == 0) - return Qnil; - - result = SDL_RWseek(ops, FIX2INT(offset), FIX2INT(whence)); - return INT2FIX(result); -} - -/* - * PhysicsFS::RWops#close - * - * close RWops. No use of the object is possible after that. - */ -VALUE sdl_rwops_close (VALUE self) -{ - int result; - SDL_RWops *ops; - - Data_Get_Struct (self, SDL_RWops, ops); - if (ops == 0) - return Qnil; - - result = SDL_RWclose (ops); - DATA_PTR(self) = 0; - - return INT2FIX(result); -} - -/* - * PhysicsFS::RWops#read - * - * read from RWops object objCount objSize'd entities. - * return string containing raw data or nil - */ -VALUE sdl_rwops_read (VALUE self, VALUE objSize, VALUE objCount) -{ - int objRead; - void *buffer; - VALUE result; - SDL_RWops *ops; - - Data_Get_Struct (self, SDL_RWops, ops); - if (ops == 0) - return Qnil; - - buffer = malloc (FIX2UINT(objSize) * FIX2UINT(objCount)); - if (buffer == 0) - return Qnil; - - objRead = SDL_RWread (ops, buffer, FIX2UINT(objSize), FIX2UINT(objCount)); - if (objRead == -1) - { - free (buffer); - return Qnil; - } - - result = rb_str_new (buffer, objRead * FIX2UINT(objSize)); - free (buffer); - return result; -} - -/* - * PhysicsFS::RWops#write buffer, size, n - * - * write raw string containing n objects size length each. - * return number of objects written or nil - */ -VALUE sdl_rwops_write (VALUE self, VALUE buffer, VALUE size, VALUE n) -{ - int result; - SDL_RWops *ops; - - Data_Get_Struct (self, SDL_RWops, ops); - if (ops == 0) - return Qnil; - - result = SDL_RWwrite (ops, STR2CSTR(buffer), FIX2INT(size), FIX2INT(n)); - - if (result == -1) - return Qnil; - - return INT2FIX(result); -} - -void init_sdl_rwops (void) -{ - classRWops = rb_define_class_under (modulePhysfs, "RWops", rb_cObject); - - rb_define_method (classRWops, "seek", sdl_rwops_seek, 2); - rb_define_method (classRWops, "read", sdl_rwops_read, 2); - rb_define_method (classRWops, "write", sdl_rwops_write, 3); - rb_define_method (classRWops, "close", sdl_rwops_close, 0); - - rb_define_singleton_method (classRWops, "from_file", - sdl_rwops_from_file, 2); - rb_define_singleton_method (classRWops, "from_memory", - sdl_rwops_from_mem, 1); -} diff --git a/extras/physfs_rb/physfs/rb_sdl_rwops.h b/extras/physfs_rb/physfs/rb_sdl_rwops.h deleted file mode 100644 index 05f51bcc..00000000 --- a/extras/physfs_rb/physfs/rb_sdl_rwops.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * SDL_RWops - ruby interface - * - * Author:: Ed Sinjiashvili (slimb@vlinkmail.com) - * License:: LGPL - */ - -#ifndef __RB__SDL__RWOPS__H__ -#define __RB__SDL__RWOPS__H__ - -extern VALUE classRWops; - -VALUE sdl_rwops_new (SDL_RWops *ops); -void init_sdl_rwops (void); - -#endif diff --git a/extras/physfs_rb/physfs/test/test_physfs.rb b/extras/physfs_rb/physfs/test/test_physfs.rb deleted file mode 100644 index 3f194c19..00000000 --- a/extras/physfs_rb/physfs/test/test_physfs.rb +++ /dev/null @@ -1,358 +0,0 @@ -# -# PhysicsFS test program - mimics real physfs_test -# -require 'readline' -require 'physfs' - -def die msg - puts "#{msg} - reason: #{PhysicsFS.last_error}" -end - -# -# parse line to command and args -# -def parse line - return false if line.nil? - - if line.strip =~ /^(.*?) (?: (?:\s+(.*)) | $)/x - run $1, $2 - else - false - end -end - -# -# parse command args -# -def parse_args args - args.strip! - - dquoted = /^ " (.*?) "/x - squoted = /^ ' (.*?) '/x - unquoted = /^([^\s\'\"]+)/ - - regexps = [dquoted, squoted, unquoted] - - result = [] - while args != "" - regexps.each do |r| - if args =~ r - result << $1 - args.sub! r, "" - args.sub!(/\s+/, "") - break - end - end - end - result -end - -def usage cmd, prefix = "usage: " - print prefix - args = Commands::HELP[cmd] - if args - print cmd - args.scan(/\w+/).each {|x| - print " <#{x}>" - } - puts - else - puts %|#{cmd} (no arguments)| - end -end - -# commands go below -module Commands - HELP = { - "init" => "argv0", - "addarchive" => "archiveLocation append", - "removearchive" => "archiveLocation", - "enumerate" => "dirToEnumerate", - "ls" => "dirToEnumerate", - "setwritedir" => "newWriteDir", - "permitsymlinks" => "1or0", - "setsaneconfig" => "org appName arcExt includeCdRoms archivesFirst", - "mkdir" => "dirToMk", - "delete" => "dirToDelete", - "getrealdir" => "fileToFind", - "exists" => "fileToCheck", - "isdir" => "fileToCheck", - "issymlink" => "fileToCheck", - "cat" => "fileToCat", - "filelength" => "fileToCheck", - "append" => "fileToAppend", - "write" => "fileToCreateOrTrash", - "getlastmodtime" => "fileToExamine" - } - - def quit_cmd - exit - end - - alias q_cmd quit_cmd - - def help_cmd - commands = ::Commands.instance_methods.grep(/_cmd$/).sort - puts "Commands:" - commands.each do |c| - usage c.sub("_cmd", ""), " - " - end - - true - end - - def e val - if val - puts "Successful." - else - puts "Failure. reason: #{PhysicsFS.last_error}" - end - true - end - - def init_cmd arg - e PhysicsFS.init(arg) - end - - def deinit_cmd - e PhysicsFS.deinit - end - - def addarchive_cmd archive, append - e PhysicsFS.add_to_search_path(archive, append) - end - - def removearchive_cmd archive - e PhysicsFS.remove_from_search_path archive - end - - def enumerate_cmd path - entries = PhysicsFS.enumerate(path) - entries.each {|x| - puts x - } - true - end - - alias ls_cmd enumerate_cmd - - def getlasterror_cmd - puts "Last error is [#{PhysicsFS.last_error}]" - true - end - - def getdirsep_cmd - puts "Directory separator is [#{PhysicsFS.dir_separator}]" - true - end - - def getcdromdirs_cmd - dirs = PhysicsFS.cdrom_dirs - dirs.each {|x| - puts x - } - puts " total [#{dirs.length}] drives." - true - end - - def getsearchpath_cmd - spath = PhysicsFS.search_path - spath.each {|x| - puts x - } - puts "total [#{spath.length}] directories." - true - end - - def getbasedir_cmd - dir = PhysicsFS.base_dir - puts dir if dir - true - end - - def getuserdir_cmd - puts PhysicsFS.user_dir - true - end - - def getwritedir_cmd - dir = PhysicsFS.write_dir - if dir - puts "Write directory is [#{dir}]." - else - puts "No write directory defined." - end - true - end - - def setwritedir_cmd dir - e(PhysicsFS.write_dir = dir) - end - - def permitsymlinks_cmd val - if val.to_i == 1 - PhysicsFS.permit_symlinks true - puts "Symlinks are now permitted" - else - PhysicsFS.permit_symlinks false - puts "Symlinks are now forbidden" - end - true - end - - def setsaneconfig_cmd org, appname, ext, includeCdroms, archivesFirst - includeCdroms = includeCdroms.to_i == 1 - archiveFirst = archivesFirst == 1 - e PhysicsFS.set_sane_config(org, appname, ext, includeCdroms, archivesFirst) - end - - def mkdir_cmd dir - e PhysicsFS.mkdir(dir) - end - - def delete_cmd dir - e PhysicsFS.delete(dir) - end - - def getrealdir_cmd file - dir = PhysicsFS.real_dir file - if dir - puts "Found at [#{dir}]" - else - puts "Not found." - end - true - end - - def exists_cmd file - if PhysicsFS.exists? file - puts "File exists" - else - puts "File does not exist" - end - true - end - - def isdir_cmd file - if PhysicsFS.is_directory? file - puts "File is a directory" - else - puts "File is NOT a directory" - end - true - end - - def issymlink_cmd file - if PhysicsFS.is_symlink? file - puts "File is a symlink" - else - puts "File is NOT a symlink" - end - true - end - - def cat_cmd filename - file = PhysicsFS.open_read filename - if file.nil? - puts "failed to open. reason: #{PhysicsFS.last_error}" - return true - end - - puts file.cat - true - end - - def filelength_cmd filename - file = PhysicsFS.open_read filename - if file.nil? - puts "failed to open. reason: #{PhysicsFS.last_error}" - return true - end - - puts file.length - file.close - true - end - - WRITE_STR = "Rubyfied PhysicsFS works just fine.\n\n" - - def append_cmd filename - file = PhysicsFS.open_append filename - if file.nil? - puts "failed to open. reason: #{PhysicsFS.last_error}" - return true - end - - file.write WRITE_STR, 1, WRITE_STR.length - file.close - true - end - - def write_cmd filename - file = PhysicsFS.open_write filename - if file.nil? - puts "failed to open. reason: #{PhysicsFS.last_error}" - return true - end - - file.write_str WRITE_STR - file.close - true - end - - def getlastmodtime_cmd filename - t = PhysicsFS.last_mod_time filename - if t == -1 - puts "failed to determin. reason: #{PhysicsFS.last_error}" - else - puts "Last modified: #{Time.at(t)}" - end - true - end -end - -include Commands - -def run command, args - if args - args = parse_args args - else - args = [] - end - - begin - cmd = method "#{command}_cmd" - if args.length == cmd.arity - return cmd.call *args - else - usage command - true - end - rescue NameError - puts 'Unknown command. Enter "help" for instructions.' - true - end -end - -if __FILE__ == $0 - - PhysicsFS.init($0) or die "PhysicsFS init failed" - - puts "PhysicsFS version: #{PhysicsFS.version}" - puts - - puts "Supported archives: " - puts PhysicsFS.supported_archives - puts - - puts 'Enter commands. Enter "help" for instructions.' - - loop { - line = Readline::readline "physfs_rb> ", true - break unless parse line - } -end - - - - diff --git a/extras/physfshttpd.c b/extras/physfshttpd.c index b9487a25..4544a6f3 100644 --- a/extras/physfshttpd.c +++ b/extras/physfshttpd.c @@ -23,10 +23,11 @@ * verbatim into a closed-source project, exploiting it commercially, and * removing any trace of my name from the source (although I hope you won't * do that). I welcome enhancements and corrections to this file, but I do - * not require you to send me patches if you make changes. + * not require you to send me patches if you make changes. This code has + * NO WARRANTY. * - * Unless otherwise stated, the rest of PhysicsFS falls under the GNU Lesser - * General Public License: http://www.gnu.org/licenses/lgpl.txt + * Unless otherwise stated, the rest of PhysicsFS falls under the zlib license. + * Please see LICENSE in the root of the source tree. * * This file was written by Ryan C. Gordon. (icculus@clutteredmind.org). */ diff --git a/extras/physfsrwops.c b/extras/physfsrwops.c index 474d6b29..a6ab6fdb 100644 --- a/extras/physfsrwops.c +++ b/extras/physfsrwops.c @@ -9,12 +9,13 @@ * verbatim into a closed-source project, exploiting it commercially, and * removing any trace of my name from the source (although I hope you won't * do that). I welcome enhancements and corrections to this file, but I do - * not require you to send me patches if you make changes. + * not require you to send me patches if you make changes. This code has + * NO WARRANTY. * - * Unless otherwise stated, the rest of PhysicsFS falls under the GNU Lesser - * General Public License: http://www.gnu.org/licenses/lgpl.txt + * Unless otherwise stated, the rest of PhysicsFS falls under the zlib license. + * Please see LICENSE in the root of the source tree. * - * SDL falls under the LGPL, too. You can get SDL at http://www.libsdl.org/ + * SDL falls under the LGPL license. You can get SDL at http://www.libsdl.org/ * * This file was written by Ryan C. Gordon. (icculus@clutteredmind.org). */ diff --git a/extras/physfsrwops.h b/extras/physfsrwops.h index 91ff2eb2..683954d0 100644 --- a/extras/physfsrwops.h +++ b/extras/physfsrwops.h @@ -9,12 +9,13 @@ * verbatim into a closed-source project, exploiting it commercially, and * removing any trace of my name from the source (although I hope you won't * do that). I welcome enhancements and corrections to this file, but I do - * not require you to send me patches if you make changes. + * not require you to send me patches if you make changes. This code has + * NO WARRANTY. * - * Unless otherwise stated, the rest of PhysicsFS falls under the GNU Lesser - * General Public License: http://www.gnu.org/licenses/lgpl.txt + * Unless otherwise stated, the rest of PhysicsFS falls under the zlib license. + * Please see LICENSE in the root of the source tree. * - * SDL falls under the LGPL, too. You can get SDL at http://www.libsdl.org/ + * SDL falls under the LGPL license. You can get SDL at http://www.libsdl.org/ * * This file was written by Ryan C. Gordon. (icculus@clutteredmind.org). */ diff --git a/physfs.c b/physfs.c index 80de2e12..0168f8da 100644 --- a/physfs.c +++ b/physfs.c @@ -69,11 +69,6 @@ extern const PHYSFS_ArchiveInfo __PHYSFS_ArchiveInfo_MVL; extern const DirFunctions __PHYSFS_DirFunctions_MVL; #endif -#if (defined PHYSFS_SUPPORTS_QPAK) -extern const PHYSFS_ArchiveInfo __PHYSFS_ArchiveInfo_QPAK; -extern const DirFunctions __PHYSFS_DirFunctions_QPAK; -#endif - extern const DirFunctions __PHYSFS_DirFunctions_DIR; @@ -95,10 +90,6 @@ static const PHYSFS_ArchiveInfo *supported_types[] = &__PHYSFS_ArchiveInfo_MVL, #endif -#if (defined PHYSFS_SUPPORTS_QPAK) - &__PHYSFS_ArchiveInfo_QPAK, -#endif - NULL }; @@ -120,10 +111,6 @@ static const DirFunctions *dirFunctions[] = &__PHYSFS_DirFunctions_MVL, #endif -#if (defined PHYSFS_SUPPORTS_QPAK) - &__PHYSFS_DirFunctions_QPAK, -#endif - &__PHYSFS_DirFunctions_DIR, NULL }; diff --git a/physfs.spec.in b/physfs.spec.in index 9c3c1c64..0f853054 100644 --- a/physfs.spec.in +++ b/physfs.spec.in @@ -8,7 +8,7 @@ Name: %{name} Version: %{version} Release: %{release} Prefix: %{prefix} -Copyright: GNU Lesser General Public License (LGPL) +Copyright: zlib license Group: System Environment/Libraries URL: http://www.icculus/physfs/ Source: physfs-%{version}.tar.gz diff --git a/physfs_internal.h b/physfs_internal.h index 615cab60..d2fb3f1b 100644 --- a/physfs_internal.h +++ b/physfs_internal.h @@ -35,11 +35,6 @@ extern "C" { #endif #define PHYSFS_LANG_ENGLISH 1 /* English by Ryan C. Gordon */ -#define PHYSFS_LANG_RUSSIAN_KOI8_R 2 /* Russian by Ed Sinjiashvili */ -#define PHYSFS_LANG_RUSSIAN_CP1251 3 /* Russian by Ed Sinjiashvili */ -#define PHYSFS_LANG_RUSSIAN_CP866 4 /* Russian by Ed Sinjiashvili */ -#define PHYSFS_LANG_RUSSIAN_ISO_8859_5 5 /* Russian by Ed Sinjiashvili */ -#define PHYSFS_LANG_SPANISH 6 /* Spanish by Pedro J. Prez */ #define PHYSFS_LANG_FRENCH 7 /* French by Stphane Peter */ #define PHYSFS_LANG_GERMAN 8 /* German by Michael Renner */ @@ -331,390 +326,6 @@ extern "C" { #define ERR_PROT_VIOLATION " " #define ERR_BROKEN_PIPE " " -#elif (PHYSFS_LANG == PHYSFS_LANG_RUSSIAN_CP1251) - #define DIR_ARCHIVE_DESCRIPTION " , / " - #define GRP_ARCHIVE_DESCRIPTION " Build engine" - #define HOG_ARCHIVE_DESCRIPTION "Descent I/II HOG file format" - #define MVL_ARCHIVE_DESCRIPTION "Descent II Movielib format" - #define ZIP_ARCHIVE_DESCRIPTION "PkZip/WinZip/Info-Zip " - - #define ERR_IS_INITIALIZED " " - #define ERR_NOT_INITIALIZED " " - #define ERR_INVALID_ARGUMENT " " - #define ERR_FILES_STILL_OPEN " " - #define ERR_NO_DIR_CREATE " " - #define ERR_OUT_OF_MEMORY " " - #define ERR_NOT_IN_SEARCH_PATH " " - #define ERR_NOT_SUPPORTED " " - #define ERR_UNSUPPORTED_ARCHIVE " " - #define ERR_NOT_A_HANDLE " " - #define ERR_INSECURE_FNAME " " - #define ERR_SYMLINK_DISALLOWED " " - #define ERR_NO_WRITE_DIR " " - #define ERR_NO_SUCH_FILE " " - #define ERR_NO_SUCH_PATH " " - #define ERR_NO_SUCH_VOLUME " " - #define ERR_PAST_EOF " " - #define ERR_ARC_IS_READ_ONLY " " - #define ERR_IO_ERROR " /" - #define ERR_CANT_SET_WRITE_DIR " " - #define ERR_SYMLINK_LOOP " " - #define ERR_COMPRESSION " ()" - #define ERR_NOT_IMPLEMENTED " " - #define ERR_OS_ERROR " " - #define ERR_FILE_EXISTS " " - #define ERR_NOT_A_FILE " " - #define ERR_NOT_A_DIR " " - #define ERR_NOT_AN_ARCHIVE " " - #define ERR_CORRUPTED " " - #define ERR_SEEK_OUT_OF_RANGE " " - #define ERR_BAD_FILENAME " " - #define ERR_PHYSFS_BAD_OS_CALL "(BUG) PhysicsFS " - #define ERR_ARGV0_IS_NULL "argv0 is NULL" - #define ERR_ZLIB_NEED_DICT "zlib: " - #define ERR_ZLIB_DATA_ERROR "zlib: " - #define ERR_ZLIB_MEMORY_ERROR "zlib: " - #define ERR_ZLIB_BUFFER_ERROR "zlib: " - #define ERR_ZLIB_VERSION_ERROR "zlib: " - #define ERR_ZLIB_UNKNOWN_ERROR "zlib: " - #define ERR_SEARCHPATH_TRUNC " " - #define ERR_GETMODFN_TRUNC "GetModuleFileName() " - #define ERR_GETMODFN_NO_DIR "GetModuleFileName() " - #define ERR_DISK_FULL " " - #define ERR_DIRECTORY_FULL " " - #define ERR_MACOS_GENERIC "MacOS (%d)" - #define ERR_OS2_GENERIC "OS/2 (%d)" - #define ERR_VOL_LOCKED_HW " " - #define ERR_VOL_LOCKED_SW " " - #define ERR_FILE_LOCKED " " - #define ERR_FILE_OR_DIR_BUSY "/ " - #define ERR_FILE_ALREADY_OPEN_W " " - #define ERR_FILE_ALREADY_OPEN_R " " - #define ERR_INVALID_REFNUM " " - #define ERR_GETTING_FILE_POS " " - #define ERR_VOLUME_OFFLINE " " - #define ERR_PERMISSION_DENIED " " - #define ERR_VOL_ALREADY_ONLINE " " - #define ERR_NO_SUCH_DRIVE " " - #define ERR_NOT_MAC_DISK " Macintosh" - #define ERR_VOL_EXTERNAL_FS " " - #define ERR_PROBLEM_RENAME " " - #define ERR_BAD_MASTER_BLOCK " " - #define ERR_CANT_MOVE_FORBIDDEN " " - #define ERR_WRONG_VOL_TYPE " " - #define ERR_SERVER_VOL_LOST " " - #define ERR_FILE_ID_NOT_FOUND " " - #define ERR_FILE_ID_EXISTS " " - #define ERR_SERVER_NO_RESPOND " " - #define ERR_USER_AUTH_FAILED " " - #define ERR_PWORD_EXPIRED " " - #define ERR_ACCESS_DENIED " " - #define ERR_NOT_A_DOS_DISK " DOS" - #define ERR_SHARING_VIOLATION " " - #define ERR_CANNOT_MAKE " " - #define ERR_DEV_IN_USE " " - #define ERR_OPEN_FAILED " " - #define ERR_PIPE_BUSY " " - #define ERR_SHARING_BUF_EXCEEDED " " - #define ERR_TOO_MANY_HANDLES " " - #define ERR_SEEK_ERROR " " - #define ERR_DEL_CWD " " - #define ERR_WRITE_PROTECT_ERROR " " - #define ERR_WRITE_FAULT " " - #define ERR_LOCK_VIOLATION " " - #define ERR_GEN_FAILURE " " - #define ERR_UNCERTAIN_MEDIA " " - #define ERR_PROT_VIOLATION " " - #define ERR_BROKEN_PIPE " " - -#elif (PHYSFS_LANG == PHYSFS_LANG_RUSSIAN_CP866) - #define DIR_ARCHIVE_DESCRIPTION " 娢, ।⢥ /뢮 䠩 ⥬" - #define GRP_ARCHIVE_DESCRIPTION "ଠ 㯯 䠩 Build engine" - #define HOG_ARCHIVE_DESCRIPTION "Descent I/II HOG file format" - #define MVL_ARCHIVE_DESCRIPTION "Descent II Movielib format" - #define ZIP_ARCHIVE_DESCRIPTION "PkZip/WinZip/Info-Zip ᮢ⨬" - - #define ERR_IS_INITIALIZED " 樠஢" - #define ERR_NOT_INITIALIZED " 樠஢" - #define ERR_INVALID_ARGUMENT " 㬥" - #define ERR_FILES_STILL_OPEN " " - #define ERR_NO_DIR_CREATE " ᮧ ⠫" - #define ERR_OUT_OF_MEMORY "稫 " - #define ERR_NOT_IN_SEARCH_PATH " ⠪ ᪠" - #define ERR_NOT_SUPPORTED " ন" - #define ERR_UNSUPPORTED_ARCHIVE "娢 ⠪ ⨯ ন" - #define ERR_NOT_A_HANDLE " 䠩 ਯ" - #define ERR_INSECURE_FNAME "᭮ 䠩" - #define ERR_SYMLINK_DISALLOWED " 뫪 ⪫祭" - #define ERR_NO_WRITE_DIR "⠫ ⠭" - #define ERR_NO_SUCH_FILE " " - #define ERR_NO_SUCH_PATH " " - #define ERR_NO_SUCH_VOLUME " " - #define ERR_PAST_EOF " 殬 䠩" - #define ERR_ARC_IS_READ_ONLY "娢 ⮫쪮 ⥭" - #define ERR_IO_ERROR "訡 /뢮" - #define ERR_CANT_SET_WRITE_DIR " ⠭ ⠫ " - #define ERR_SYMLINK_LOOP "᪮ 横 ᨬ쭮 뫪" - #define ERR_COMPRESSION "訡 ()" - #define ERR_NOT_IMPLEMENTED " ॠ" - #define ERR_OS_ERROR "樮 ⥬ ᮮ騫 訡" - #define ERR_FILE_EXISTS " 㦥 " - #define ERR_NOT_A_FILE " 䠩" - #define ERR_NOT_A_DIR " ⠫" - #define ERR_NOT_AN_ARCHIVE " 娢" - #define ERR_CORRUPTED "० 娢" - #define ERR_SEEK_OUT_OF_RANGE "樮஢ ।" - #define ERR_BAD_FILENAME "୮ 䠩" - #define ERR_PHYSFS_BAD_OS_CALL "(BUG) PhysicsFS 믮 ⥬ 맮" - #define ERR_ARGV0_IS_NULL "argv0 is NULL" - #define ERR_ZLIB_NEED_DICT "zlib: 㦥 ᫮" - #define ERR_ZLIB_DATA_ERROR "zlib: 訡 " - #define ERR_ZLIB_MEMORY_ERROR "zlib: 訡 " - #define ERR_ZLIB_BUFFER_ERROR "zlib: 訡 " - #define ERR_ZLIB_VERSION_ERROR "zlib: 訡 ᨨ" - #define ERR_ZLIB_UNKNOWN_ERROR "zlib: ⭠ 訡" - #define ERR_SEARCHPATH_TRUNC " ᪠ १" - #define ERR_GETMODFN_TRUNC "GetModuleFileName() १" - #define ERR_GETMODFN_NO_DIR "GetModuleFileName() 稫 ⠫" - #define ERR_DISK_FULL " " - #define ERR_DIRECTORY_FULL "⠫ " - #define ERR_MACOS_GENERIC "MacOS ᮮ騫 訡 (%d)" - #define ERR_OS2_GENERIC "OS/2 ᮮ騫 訡 (%d)" - #define ERR_VOL_LOCKED_HW " ஢ ⭮" - #define ERR_VOL_LOCKED_SW " ஢ ணࠬ" - #define ERR_FILE_LOCKED " ஢" - #define ERR_FILE_OR_DIR_BUSY "/⠫ " - #define ERR_FILE_ALREADY_OPEN_W " 㦥 " - #define ERR_FILE_ALREADY_OPEN_R " 㦥 ⥭" - #define ERR_INVALID_REFNUM "୮ ⢮ 뫮" - #define ERR_GETTING_FILE_POS "訡 祭 樨 䠩" - #define ERR_VOLUME_OFFLINE " ᮥ" - #define ERR_PERMISSION_DENIED "⪠ ࠧ襭" - #define ERR_VOL_ALREADY_ONLINE " 㦥 ᮥ" - #define ERR_NO_SUCH_DRIVE " ⠪ ᪠" - #define ERR_NOT_MAC_DISK " Macintosh" - #define ERR_VOL_EXTERNAL_FS " ਭ 譥 䠩 ⥬" - #define ERR_PROBLEM_RENAME "஡ २" - #define ERR_BAD_MASTER_BLOCK "宩 ⠫" - #define ERR_CANT_MOVE_FORBIDDEN "⪠ ६ 饭" - #define ERR_WRONG_VOL_TYPE " ⨯ ⮬" - #define ERR_SERVER_VOL_LOST "ࢥ ⮬ ᮥ" - #define ERR_FILE_ID_NOT_FOUND "䨪 䠩 " - #define ERR_FILE_ID_EXISTS "䨪 䠩 㦥 " - #define ERR_SERVER_NO_RESPOND "ࢥ ⢥砥" - #define ERR_USER_AUTH_FAILED "䨪 짮⥫ 㤠" - #define ERR_PWORD_EXPIRED "஫ ࢥ ५" - #define ERR_ACCESS_DENIED "⪠ 㯥" - #define ERR_NOT_A_DOS_DISK " DOS" - #define ERR_SHARING_VIOLATION "襭 ᮢ⭮ 㯠" - #define ERR_CANNOT_MAKE " ᮡ" - #define ERR_DEV_IN_USE "ன⢮ 㦥 ᯮ" - #define ERR_OPEN_FAILED "⨥ 㤠" - #define ERR_PIPE_BUSY " " - #define ERR_SHARING_BUF_EXCEEDED "塞 ९" - #define ERR_TOO_MANY_HANDLES "誮 ਯ஢" - #define ERR_SEEK_ERROR "訡 樮஢" - #define ERR_DEL_CWD "⪠ 㤠 ⥪騩 ࠡ稩 ⠫" - #define ERR_WRITE_PROTECT_ERROR "訡 " - #define ERR_WRITE_FAULT "訡 " - #define ERR_LOCK_VIOLATION "襭 ஢" - #define ERR_GEN_FAILURE "騩 ᡮ" - #define ERR_UNCERTAIN_MEDIA "। ⥫" - #define ERR_PROT_VIOLATION "襭 " - #define ERR_BROKEN_PIPE " " - -#elif (PHYSFS_LANG == PHYSFS_LANG_RUSSIAN_ISO_8859_5) - #define DIR_ARCHIVE_DESCRIPTION " , / " - #define GRP_ARCHIVE_DESCRIPTION " Build engine" - #define HOG_ARCHIVE_DESCRIPTION "Descent I/II HOG file format" - #define MVL_ARCHIVE_DESCRIPTION "Descent II Movielib format" - #define ZIP_ARCHIVE_DESCRIPTION "PkZip/WinZip/Info-Zip " - - #define ERR_IS_INITIALIZED " " - #define ERR_NOT_INITIALIZED " " - #define ERR_INVALID_ARGUMENT " " - #define ERR_FILES_STILL_OPEN " " - #define ERR_NO_DIR_CREATE " " - #define ERR_OUT_OF_MEMORY " " - #define ERR_NOT_IN_SEARCH_PATH " " - #define ERR_NOT_SUPPORTED " " - #define ERR_UNSUPPORTED_ARCHIVE " " - #define ERR_NOT_A_HANDLE " " - #define ERR_INSECURE_FNAME " " - #define ERR_SYMLINK_DISALLOWED " " - #define ERR_NO_WRITE_DIR " " - #define ERR_NO_SUCH_FILE " " - #define ERR_NO_SUCH_PATH " " - #define ERR_NO_SUCH_VOLUME " " - #define ERR_PAST_EOF " " - #define ERR_ARC_IS_READ_ONLY " " - #define ERR_IO_ERROR " /" - #define ERR_CANT_SET_WRITE_DIR " " - #define ERR_SYMLINK_LOOP " " - #define ERR_COMPRESSION " ()" - #define ERR_NOT_IMPLEMENTED " " - #define ERR_OS_ERROR " " - #define ERR_FILE_EXISTS " " - #define ERR_NOT_A_FILE " " - #define ERR_NOT_A_DIR " " - #define ERR_NOT_AN_ARCHIVE " " - #define ERR_CORRUPTED " " - #define ERR_SEEK_OUT_OF_RANGE " " - #define ERR_BAD_FILENAME " " - #define ERR_PHYSFS_BAD_OS_CALL "(BUG) PhysicsFS " - #define ERR_ARGV0_IS_NULL "argv0 is NULL" - #define ERR_ZLIB_NEED_DICT "zlib: " - #define ERR_ZLIB_DATA_ERROR "zlib: " - #define ERR_ZLIB_MEMORY_ERROR "zlib: " - #define ERR_ZLIB_BUFFER_ERROR "zlib: " - #define ERR_ZLIB_VERSION_ERROR "zlib: " - #define ERR_ZLIB_UNKNOWN_ERROR "zlib: " - #define ERR_SEARCHPATH_TRUNC " " - #define ERR_GETMODFN_TRUNC "GetModuleFileName() " - #define ERR_GETMODFN_NO_DIR "GetModuleFileName() " - #define ERR_DISK_FULL " " - #define ERR_DIRECTORY_FULL " " - #define ERR_MACOS_GENERIC "MacOS (%d)" - #define ERR_OS2_GENERIC "OS/2 (%d)" - #define ERR_VOL_LOCKED_HW " " - #define ERR_VOL_LOCKED_SW " " - #define ERR_FILE_LOCKED " " - #define ERR_FILE_OR_DIR_BUSY "/ " - #define ERR_FILE_ALREADY_OPEN_W " " - #define ERR_FILE_ALREADY_OPEN_R " " - #define ERR_INVALID_REFNUM " " - #define ERR_GETTING_FILE_POS " " - #define ERR_VOLUME_OFFLINE " " - #define ERR_PERMISSION_DENIED " " - #define ERR_VOL_ALREADY_ONLINE " " - #define ERR_NO_SUCH_DRIVE " " - #define ERR_NOT_MAC_DISK " Macintosh" - #define ERR_VOL_EXTERNAL_FS " " - #define ERR_PROBLEM_RENAME " " - #define ERR_BAD_MASTER_BLOCK " " - #define ERR_CANT_MOVE_FORBIDDEN " " - #define ERR_WRONG_VOL_TYPE " " - #define ERR_SERVER_VOL_LOST " " - #define ERR_FILE_ID_NOT_FOUND " " - #define ERR_FILE_ID_EXISTS " " - #define ERR_SERVER_NO_RESPOND " " - #define ERR_USER_AUTH_FAILED " " - #define ERR_PWORD_EXPIRED " " - #define ERR_ACCESS_DENIED " " - #define ERR_NOT_A_DOS_DISK " DOS" - #define ERR_SHARING_VIOLATION " " - #define ERR_CANNOT_MAKE " " - #define ERR_DEV_IN_USE " " - #define ERR_OPEN_FAILED " " - #define ERR_PIPE_BUSY " " - #define ERR_SHARING_BUF_EXCEEDED " " - #define ERR_TOO_MANY_HANDLES " " - #define ERR_SEEK_ERROR " " - #define ERR_DEL_CWD " " - #define ERR_WRITE_PROTECT_ERROR " " - #define ERR_WRITE_FAULT " " - #define ERR_LOCK_VIOLATION " " - #define ERR_GEN_FAILURE " " - #define ERR_UNCERTAIN_MEDIA " " - #define ERR_PROT_VIOLATION " " - #define ERR_BROKEN_PIPE " " - -#elif (PHYSFS_LANG == PHYSFS_LANG_SPANISH) - #define DIR_ARCHIVE_DESCRIPTION "No es un archivo, E/S directa al sistema de ficheros" - #define GRP_ARCHIVE_DESCRIPTION "Formato Build engine Groupfile" - #define HOG_ARCHIVE_DESCRIPTION "Descent I/II HOG file format" - #define MVL_ARCHIVE_DESCRIPTION "Descent II Movielib format" - #define ZIP_ARCHIVE_DESCRIPTION "Compatible con PkZip/WinZip/Info-Zip" - - #define ERR_IS_INITIALIZED "Ya estaba inicializado" - #define ERR_NOT_INITIALIZED "No est inicializado" - #define ERR_INVALID_ARGUMENT "Argumento invlido" - #define ERR_FILES_STILL_OPEN "Archivos an abiertos" - #define ERR_NO_DIR_CREATE "Fallo al crear los directorios" - #define ERR_OUT_OF_MEMORY "Memoria agotada" - #define ERR_NOT_IN_SEARCH_PATH "No existe tal entrada en la ruta de bsqueda" - #define ERR_NOT_SUPPORTED "Operacin no soportada" - #define ERR_UNSUPPORTED_ARCHIVE "Tipo de archivo no soportado" - #define ERR_NOT_A_HANDLE "No es un manejador de ficheo (file handle)" - #define ERR_INSECURE_FNAME "Nombre de archivo inseguro" - #define ERR_SYMLINK_DISALLOWED "Los enlaces simblicos estn desactivados" - #define ERR_NO_WRITE_DIR "No has configurado un directorio de escritura" - #define ERR_NO_SUCH_FILE "Archivo no encontrado" - #define ERR_NO_SUCH_PATH "Ruta no encontrada" - #define ERR_NO_SUCH_VOLUME "Volumen no encontrado" - #define ERR_PAST_EOF "Te pasaste del final del archivo" - #define ERR_ARC_IS_READ_ONLY "El archivo es de slo lectura" - #define ERR_IO_ERROR "Error E/S" - #define ERR_CANT_SET_WRITE_DIR "No puedo configurar el directorio de escritura" - #define ERR_SYMLINK_LOOP "Bucle infnito de enlaces simblicos" - #define ERR_COMPRESSION "Error de (des)compresin" - #define ERR_NOT_IMPLEMENTED "No implementado" - #define ERR_OS_ERROR "El sistema operativo ha devuelto un error" - #define ERR_FILE_EXISTS "El archivo ya existe" - #define ERR_NOT_A_FILE "No es un archivo" - #define ERR_NOT_A_DIR "No es un directorio" - #define ERR_NOT_AN_ARCHIVE "No es un archivo" - #define ERR_CORRUPTED "Archivo corrupto" - #define ERR_SEEK_OUT_OF_RANGE "Bsqueda fuera de rango" - #define ERR_BAD_FILENAME "Nombre de archivo incorrecto" - #define ERR_PHYSFS_BAD_OS_CALL "(BUG) PhysicsFS ha hecho una llamada incorrecta al sistema" - #define ERR_ARGV0_IS_NULL "argv0 es NULL" - #define ERR_ZLIB_NEED_DICT "zlib: necesito diccionario" - #define ERR_ZLIB_DATA_ERROR "zlib: error de datos" - #define ERR_ZLIB_MEMORY_ERROR "zlib: error de memoria" - #define ERR_ZLIB_BUFFER_ERROR "zlib: error de buffer" - #define ERR_ZLIB_VERSION_ERROR "zlib: error de versin" - #define ERR_ZLIB_UNKNOWN_ERROR "zlib: error desconocido" - #define ERR_SEARCHPATH_TRUNC "La ruta de bsqueda ha sido truncada" - #define ERR_GETMODFN_TRUNC "GetModuleFileName() ha sido truncado" - #define ERR_GETMODFN_NO_DIR "GetModuleFileName() no tenia directorio" - #define ERR_DISK_FULL "El disco est lleno" - #define ERR_DIRECTORY_FULL "El directorio est lleno" - #define ERR_MACOS_GENERIC "MacOS ha devuelto un error (%d)" - #define ERR_OS2_GENERIC "OS/2 ha devuelto un error (%d)" - #define ERR_VOL_LOCKED_HW "El volumen est bloqueado por el hardware" - #define ERR_VOL_LOCKED_SW "El volumen est bloqueado por el software" - #define ERR_FILE_LOCKED "El archivo est bloqueado" - #define ERR_FILE_OR_DIR_BUSY "Fichero o directorio ocupados" - #define ERR_FILE_ALREADY_OPEN_W "Fichero ya abierto para escritura" - #define ERR_FILE_ALREADY_OPEN_R "Fichero ya abierto para lectura" - #define ERR_INVALID_REFNUM "El nmero de referencia no es vlido" - #define ERR_GETTING_FILE_POS "Error al tomar la posicin del fichero" - #define ERR_VOLUME_OFFLINE "El volumen est desconectado" - #define ERR_PERMISSION_DENIED "Permiso denegado" - #define ERR_VOL_ALREADY_ONLINE "El volumen ya estaba conectado" - #define ERR_NO_SUCH_DRIVE "No existe tal unidad" - #define ERR_NOT_MAC_DISK "No es un disco Macintosh" - #define ERR_VOL_EXTERNAL_FS "El volumen pertence a un sistema de ficheros externo" - #define ERR_PROBLEM_RENAME "Problemas al renombrar" - #define ERR_BAD_MASTER_BLOCK "Bloque maestro de directorios incorrecto" - #define ERR_CANT_MOVE_FORBIDDEN "Intento de mover forbidden" - #define ERR_WRONG_VOL_TYPE "Tipo de volumen incorrecto" - #define ERR_SERVER_VOL_LOST "El servidor de volmenes ha sido desconectado" - #define ERR_FILE_ID_NOT_FOUND "Identificador de archivo no encontrado" - #define ERR_FILE_ID_EXISTS "El identificador de archivo ya existe" - #define ERR_SERVER_NO_RESPOND "El servidor no responde" - #define ERR_USER_AUTH_FAILED "Fallo al autentificar el usuario" - #define ERR_PWORD_EXPIRED "La Password en el servidor ha caducado" - #define ERR_ACCESS_DENIED "Acceso denegado" - #define ERR_NOT_A_DOS_DISK "No es un disco de DOS" - #define ERR_SHARING_VIOLATION "Violacin al compartir" - #define ERR_CANNOT_MAKE "No puedo hacer make" - #define ERR_DEV_IN_USE "El dispositivo ya estaba en uso" - #define ERR_OPEN_FAILED "Fallo al abrir" - #define ERR_PIPE_BUSY "Tubera ocupada" - #define ERR_SHARING_BUF_EXCEEDED "Buffer de comparticin sobrepasado" - #define ERR_TOO_MANY_HANDLES "Demasiados manejadores (handles)" - #define ERR_SEEK_ERROR "Error de bsqueda" - #define ERR_DEL_CWD "Intentando borrar el directorio de trabajo actual" - #define ERR_WRITE_PROTECT_ERROR "Error de proteccin contra escritura" - #define ERR_WRITE_FAULT "Fallo al escribir" - #define ERR_LOCK_VIOLATION "Violacin del bloqueo" - #define ERR_GEN_FAILURE "Fallo general" - #define ERR_UNCERTAIN_MEDIA "Medio incierto" - #define ERR_PROT_VIOLATION "Violacin de la proteccin" - #define ERR_BROKEN_PIPE "Tubera rota" - #elif (PHYSFS_LANG == PHYSFS_LANG_FRENCH) #define DIR_ARCHIVE_DESCRIPTION "Pas d'archive, E/S directes sur systme de fichiers" #define GRP_ARCHIVE_DESCRIPTION "Format Groupfile du moteur Build" diff --git a/zlib_license_change.txt b/zlib_license_change.txt new file mode 100644 index 00000000..eb16f4d8 --- /dev/null +++ b/zlib_license_change.txt @@ -0,0 +1,757 @@ +Original discussion is partially quoted in here, thread is archived at: + http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?4:mss:209:200306:nhnacekcfbbhichggfpk + + +These are the emails I got approving the change to a zlib license. I have +removed the authors' email addresses for spam safety. --ryan. + + + + + + + +From xxxxxxxxxxx Mon Jun 9 07:56:24 2003 +Date: Mon, 09 Jun 2003 12:17:18 +0100 +From: Adam D. Moss +Reply-To: "physfs@icculus.org" +To: "physfs@icculus.org" +Subject: Re: [physfs] License change proposition. + + +"I approve of a switch to the zlib license for code I own +in PhysicsFS" (and think it's generally a swell idea...) + +> Adam D. Moss +> ------------ +> extras/abs-file.h (need you to sign off on whole file): +> http://cvs.icculus.org/horde/chora/co.php/extras/abs-file.h?rt=physfs&r=1.3 + + +-- +Adam D. Moss . ,,^^ xxxxxxxxx http://www.foxbox.org/ co:3 +"Responsible parents don't raise kids in West Virginia." + + +From xxxxxxxxxxxxxxx Mon Jun 9 16:45:02 2003 +Date: Mon, 9 Jun 2003 11:37:31 -0700 +From: Bradley Bell +Reply-To: "physfs@icculus.org" +To: "physfs@icculus.org" +Subject: Re: [physfs] License change proposition. + + [ The following text is in the "iso-8859-1" character set. ] + [ Your display is set for the "US-ASCII" character set. ] + [ Some characters may be displayed incorrectly. ] + +Quoting "Ryan C. Gordon" : + +> Please discuss. + +Sounds fine to me. And it makes it easier for me to use it in d2x. (which has a +very confusing license) + +-brad + + + +From xxxxxxxxxxxx Mon Jun 9 16:45:12 2003 +Date: Mon, 09 Jun 2003 12:00:13 -0700 +From: David Hedbor +To: Ryan C. Gordon +Subject: Re: [physfs] License change proposition. + +As mentioned before, I'm all for the license change since it would +benefit me personally. +-- +[ Below is a random fortune, which is unrelated to the above message. ] +The Hollywood tradition I like best is called "sucking up to the stars." + -- Johnny Carson + + +From xxxxxxxxxxxxx Mon Jun 9 16:45:22 2003 +Date: 09 Jun 2003 14:13:00 -0500 +From: Edward Rudd +Reply-To: "physfs@icculus.org" +To: "physfs@icculus.org" +Subject: Re: [physfs] License change proposition. + +On Mon, 2003-06-09 at 05:50, Ryan C. Gordon wrote: +That's fine with me.. You have permissions from me. +> +> Edward Rudd +> ----------- +> RPM specfile (need you to sign off on whole file): +> http://cvs.icculus.org/horde/chora/cvs.php/physfs.spec.in?rt=physfs + +-- +Edward Rudd +Home Page + + +From xxxxxxxxxxx Wed Jun 11 13:15:28 2003 +Date: Wed, 11 Jun 2003 06:43:43 -0700 (PDT) +From: Eric Wing +To: Ryan C. Gordon +Subject: Re: [physfs] License change proposition. + +Hi Ryan, +Sorry for the delayed response. (email troubles at +Stanford among other things) + +I approve of a switch to the zlib license for +code I own in PhysicsFS, so you can sign off +everything I have there. + +Thanks, +Eric + + +--- "Ryan C. Gordon" +wrote: +> +> I like to be helpful when people ask me questions +> about PhysicsFS. I may not +> always have an immediate solution, but I hate +> telling people "that can't be +> done at all". +> +> There is one problem that comes up a lot at which I +> just have to shrug my +> shoulders, and that's distribution. +> +> PhysicsFS, being LGPL'd, can not be statically +> linked to a closed-source +> program. Generally this is not an obstacle so much +> as an annoyance for the +> application developer, since they need to ship a +> shared library and do some +> other legal tapdancing (hey, _someone_ will be a +> pain and demand a copy of the +> physfs source tree by postal mail someday!). End +> result: developers unhappily +> put up with distribution issues and possible bug +> reports, or they do without. +> +> There are places where this annoyance can be a +> showstopper, though. For +> example, I was contacted about a year ago by a game +> shop that wanted to use +> PhysicsFS in a PlayStation 2 title, since the +> PhysicsFS API combined with +> its efficient zipfile archiver is _very_ appealing +> in light of the PSX2's +> awful native filesystem limitations. +> +> How does one ship an LGPL'd library in a console +> game? End users can't relink +> the bugger, after all. Furthermore, their legal +> department had a fit when they +> heard about the "viral" nature of the license when +> statically linking it... +> there is no such thing as "dynamic" linking on a +> PlayStation 2. +> +> Now, here's the lesson for any future project +> maintainers: either don't accept +> patches, or make sure you own the copyright on _all_ +> the code before accepting +> it. I have poured years of effort into PhysicsFS, +> but I don't own all the code, +> so I couldn't just grant a license exemption to this +> console developer. End +> result: they did without. +> +> I don't like my own hands being tied by my own +> license. That really doesn't +> seem fair to me. +> +> So for these reasons, I've decided to switch +> PhysicsFS to the zlib license. +> The end result of this is that there will be no +> confusion as to how you can +> use the library ("any way you like") and how you can +> distribute it ("any way +> you like"). The only significant loss is that +> contributers are no longer +> legally obligated to give back source changes, but +> I'm confident that +> developers will if it's generally useful and +> relevant to the public. At least, +> I don't think we should license the library with the +> assumption that +> programmers must have their hands forced to do the +> right thing. +> +> For those that aren't aware of the zlib license, +> here it is. zlib is used in +> all sorts of software without you needing to think +> about it (including +> PhysicsFS), and the license is by far the simplest +> I've ever seen. This is +> the text: +> +> Copyright (c) +> +> This software is provided 'as-is', without any +> express or implied warranty. +> In no event will the authors be held liable for +> any damages arising from +> the use of this software. +> +> Permission is granted to anyone to use this +> software for any purpose, +> including commercial applications, and to alter +> it and redistribute it +> freely, subject to the following restrictions: +> +> 1. The origin of this software must not be +> misrepresented; you must not +> claim that you wrote the original software. If +> you use this software in a +> product, an acknowledgment in the product +> documentation would be +> appreciated but is not required. +> +> 2. Altered source versions must be plainly marked +> as such, and must not be +> misrepresented as being the original software. +> +> 3. This notice may not be removed or altered from +> any source distribution. +> +> +> That's that. +> +> +> Here's how this works: I've compiled a list of all +> contributors to PhysicsFS +> and what was contributed. I need from these people a +> message saying that they +> will approve a switch to the zlib license. Nothing +> fancy, just quote this +> email and say something like "I approve of a switch +> to the zlib license for +> code I own in PhysicsFS." You still own the +> copyright on that bit of code, but +> it'll be under the zlib license. +> +> I can't switch the license until all the developers, +> below, give me permission, +> or their code has been replaced or removed. +> +> If you contributed something and I missed you, +> please let me know. If I don't +> hear from you, I'll try to track you down. If I +> can't track you down, we've +> got to remove or replace your code. +> +> For application developers and end users: you use +> any code up until we switch +> under the LGPL. After the switch, you can use the +> older code under the LGPL +> and the new code under the zlib license. You have +> less restrictions with the +> zlib license, so you'll probably want to upgrade. +> +> +> Please discuss. +> +> --ryan. +> +> +> +> Contributors: +> I tried to list everything, but the LGPL says you +> can cut-and-paste up to ten +> lines of code, so if you fixed a few typos, you +> might not be listed here. If +> this is a concern, please speak up. +> +> +> +> David Hedbor +> ------------ +> Patch to handle situation when CWD is deleted out +> from under program: +> +> +http://cvs.icculus.org/horde/chora/diff.php/physfs.c?rt=physfs&r1=1.22&r2=1.23&ty=u +> +> +http://cvs.icculus.org/horde/chora/diff.php/platform/unix.c?rt=physfs&r1=1.11&r2=1.12&ty=u +> +> Patch to make PHYSFS_setSaneConfig() set Write +> Directory correctly: +> +> +http://cvs.icculus.org/horde/chora/diff.php/physfs.c?rt=physfs&r1=1.23&r2=1.24&ty=u +> +> PocketPC patches: +> +> +http://cvs.icculus.org/horde/chora/diff.php/platform/pocketpc.c?rt=physfs&r1=1.1&r2=1.2&ty=u +> +> +http://cvs.icculus.org/horde/chora/diff.php/archivers/zip.c?rt=physfs&ws=0&r1=1.61&r2=1.62&ty=u +> +> +> Patrick Stein +> ------------- +> More-portable __PHYSFS_platformTimeslice() for +> Unix: +> +> +http://cvs.icculus.org/horde/chora/diff.php/platform/unix.c?rt=physfs&ws=0&r1=1.12&r2=1.13&ty=u +> +> General BSD-ish (but originally for Darwin) CD-ROM +> detection: +> +> +http://cvs.icculus.org/horde/chora/diff.php/platform/unix.c?rt=physfs&ws=0&r1=1.13&r2=1.14&ty=u +> +> +> Gregory S. Read +> --------------- +> Lots of Win32 work (need you to sign off on whole +> file): +> +> +http://cvs.icculus.org/horde/chora/cvs.php/platform/win32.c?rt=physfs +> +> Microsoft .NET bindings (need you to sign off on +> whole directory tree): +> +> +http://cvs.icculus.org/horde/chora/cvs.php/extras/PhysFS.NET?rt=physfs +> +> +> John Hall +> --------- +> PHYSFS_getLastModTime() API: +> +> +http://cvs.icculus.org/horde/chora/diff.php/physfs.c?rt=physfs&r1=1.39&r2=1.40&ty=u +> +> +http://cvs.icculus.org/horde/chora/diff.php/platform/macclassic.c?rt=physfs&r1=1.9&r2=1.10&ty=u +> +> +http://cvs.icculus.org/horde/chora/diff.php/platform/posix.c?rt=physfs&r1=1.1&r2=1.2&ty=u +> +> +http://cvs.icculus.org/horde/chora/diff.php/platform/skeleton.c?rt=physfs&r1=1.3&r2=1.4&ty=u +> +> +http://cvs.icculus.org/horde/chora/diff.php/platform/win32.c?rt=physfs&r1=1.18&r2=1.19&ty=u +> +> +> Alexander Pipelka +> ----------------- +> configure.in fixes: +> +> +http://cvs.icculus.org/horde/chora/diff.php/configure.in?rt=physfs&r1=1.19&r2=1.20&ty=u +> +> doOpen() fix: +> +> +http://cvs.icculus.org/horde/chora/diff.php/platform/posix.c?rt=physfs&ws=0&r1=1.6&r2=1.7&ty=u +> +> Strange $PATH fix: +> +> +http://cvs.icculus.org/horde/chora/diff.php/platform/unix.c?rt=physfs&ws=0&r1=1.38&r2=1.39&ty=u +> +> +> Edward Rudd +> ----------- +> RPM specfile (need you to sign off on whole file): +> +> +http://cvs.icculus.org/horde/chora/cvs.php/physfs.spec.in?rt=physfs +> +> +> Ed Sinjiashvili +> --------------- +> Various Russian translations: +> +> +http://cvs.icculus.org/horde/chora/diff.php/physfs_internal.h?rt=physfs&r1=1.33&r2=1.34&ty=u +> +> +http://cvs.icculus.org/horde/chora/diff.php/physfs_internal.h?rt=physfs&r1=1.34&r2=1.35&ty=u +> +> +http://cvs.icculus.org/horde/chora/diff.php/physfs_internal.h?rt=physfs&r1=1.37&r2=1.38&ty=u +> +> Ruby bindings (need you to sign off on whole +> directory tree): +> +> +http://cvs.icculus.org/horde/chora/cvs.php/extras/physfs_rb?rt=physfs +> +> QPAK archiver (need you to sign off on whole file): +> +> +http://cvs.icculus.org/horde/chora/cvs.php/archivers/qpak.c?rt=physfs +> +> +> Pedro J. P^rez +> --------------- +> Spanish translation: +> +> +http://cvs.icculus.org/horde/chora/diff.php/physfs_internal.h?rt=physfs&r1=1.35&r2=1.36&ty=u +> +> +> Stepane Peter +> ------------- +> French translation: +> +> +http://cvs.icculus.org/horde/chora/diff.php/physfs_internal.h?rt=physfs&r1=1.36&r2=1.37&ty=u +> +> +> Michael Renner +> -------------- +> German translation: +> +> +http://cvs.icculus.org/horde/chora/diff.php/physfs_internal.h?rt=physfs&r1=1.42&r2=1.43&ty=u +> +> +> Adam D. Moss +> ------------ +> extras/abs-file.h (need you to sign off on whole +> file): +> +> +http://cvs.icculus.org/horde/chora/co.php/extras/abs-file.h?rt=physfs&r=1.3 +> +> +> "Corona688" +> ----------- +> Initial PocketPC port (need you to sign off on +> whole file): +> +> +http://cvs.icculus.org/horde/chora/co.php/platform/pocketpc.c?rt=physfs&r=1.1 +> +> +> Eric Wing +> --------- +> Apple Project Builder build system (need you to +> sign off on whole dir tree): +> +> +http://cvs.icculus.org/horde/chora/cvs.php/PBProjects?rt=physfs +> +> MacOS X Application Bundle workarounds: +> +> +http://cvs.icculus.org/horde/chora/diff.php/platform/unix.c?rt=physfs&r1=1.39&r2=1.40&ty=u +> +> +> Colin Bayer +> ----------- +> Debian package support (need you to sign off on +> whole directory tree): +> +> +http://cvs.icculus.org/horde/chora/cvs.php/debian?rt=physfs +> +> +> Bradley Bell +> ------------ +> HOG archiver: +> +> +http://cvs.icculus.org/horde/chora/cvs.php/archivers/hog.c?rt=physfs +> +> MVL archiver: +> +> +http://cvs.icculus.org/horde/chora/cvs.php/archivers/mvl.c?rt=physfs +> +> +> +> + + +__________________________________ +Do you Yahoo!? +Yahoo! Calendar - Free online calendar with sync to Outlook(TM). +http://calendar.yahoo.com + +From xxxxxxxxxxxxxxxx Fri Jun 20 18:07:25 2003 +Date: 16 Jun 2003 16:41:31 +0200 +From: Alexander Pipelka +To: "icculus@clutteredmind.org" +Subject: Re: [physfs] License change proposition. + +Hi Ryan, + +No problem. Please change the licensing model as you like. + +Alex + +PS: Sorry for my late reply, I just returned from vacation. + +Am Mon, 2003-06-09 um 12.50 schrieb Ryan C. Gordon: +> Alexander Pipelka +> ----------------- +> configure.in fixes: +> http://cvs.icculus.org/horde/chora/diff.php/configure.in?rt=physfs&r1=1.19&r2=1.20&ty=u +> +> doOpen() fix: +> http://cvs.icculus.org/horde/chora/diff.php/platform/posix.c?rt=physfs&ws=0&r1=1.6&r2=1.7&ty=u +> +> Strange $PATH fix: +> http://cvs.icculus.org/horde/chora/diff.php/platform/unix.c?rt=physfs&ws=0&r1=1.38&r2=1.39&ty=u + + + +From xxxxxxxxxxxxxx Thu Jul 10 03:27:43 2003 +Date: Thu, 10 Jul 2003 00:10:16 -0700 +From: "xxxxxxxxxxx" +To: "icculus@icculus.org" +Subject: physfs + +I hereby assign the copyright of any changes I have made to PhysicsFS to Ryan Gordon. + +And thanks for asking, even though I obviously wouldn't have a problem with this. + +-John + +From xxxxxxxxxxxxxxxx Thu Jul 10 04:26:07 2003 +Date: 10 Jul 2003 01:23:25 -0700 +From: Colin Bayer +To: Ryan C. Gordon +Subject: physicsfs/zlib + +> Here's how this works: I've compiled a list of all contributors to +PhysicsFS +> and what was contributed. I need from these people a message saying that they +> will approve a switch to the zlib license. Nothing fancy, just quote this +> email and say something like "I approve of a switch to the zlib license for +> code I own in PhysicsFS." You still own the copyright on that bit of code, but +> it'll be under the zlib license. + +I approve of a switch to the zlib license for code I own in PhysicsFS. + +-- Colin Bayer + + [ Part 2, "This is a digitally signed message part" ] + [ Application/PGP-SIGNATURE 196bytes. ] + [ Unable to print this part. ] + + +From xxxxxxxxxxxxxxx Thu Jul 10 14:40:34 2003 +Date: Thu, 10 Jul 2003 13:17:00 -0500 +From: Patrick Stein +To: Ryan C. Gordon +Subject: Re: PhysicsFS license change. + + +Wow... forgot that I had ever written anything for that... +Anyhow... in addition to having no problems with you +changing the license.... I also give to you any say in +any future matters pertaining to the two or three lines +of code that I sent you. 8^) + +alter, +Patrick + + +On Thursday, July 10, 2003, at 01:07 PM, Ryan C. Gordon wrote: + +> +> Hey there, +> +> I'm looking to change the licensing on PhysicsFS from LGPL to the zlib +> license. The long explanation is here: +> +> +> http://icculus.org/cgi-bin/ezmlm/ezmlm- +> cgi?4:mss:209:200306:nhnacekcfbbhichggfpk +> +> If you're reading this, it means that I never got a response on the +> mailing list, either because you aren't subscribed, or because you +> missed +> it, and this is the last email address I have for you....but I need +> explicit permission from you to convert code you wrote (even if it was +> just a natural language translation) to a different license. +> +> If you don't mind switching to zlib, please respond with something +> along +> the lines of "I approve of a switch to the zlib license for code I own +> in +> PhysicsFS." +> +> If you have any problems, that's okay, too, just let me know. +> +> Thanks, +> --ryan. +> + + +From xxxxxxxxxxxxxx Thu Jul 10 14:40:40 2003 +Date: 10 Jul 2003 11:33:26 -0700 +From: Stephane Peter +To: Ryan C. Gordon +Subject: Re: PhysicsFS license change. + +You know, I don't think I ever contributed code to physfs, but if you +manage to find out something I may have, then you have my approval to +switch it to the zlib license... + + +On Thu, 2003-07-10 at 11:07, Ryan C. Gordon wrote: +> Hey there, +> +> I'm looking to change the licensing on PhysicsFS from LGPL to the zlib +> license. The long explanation is here: +> +> http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?4:mss:209:200306:nhnacekcfbbhichggfpk +> +> If you're reading this, it means that I never got a response on the +> mailing list, either because you aren't subscribed, or because you missed +> it, and this is the last email address I have for you....but I need +> explicit permission from you to convert code you wrote (even if it was +> just a natural language translation) to a different license. +> +> If you don't mind switching to zlib, please respond with something along +> the lines of "I approve of a switch to the zlib license for code I own in +> PhysicsFS." +> +> If you have any problems, that's okay, too, just let me know. +> +> Thanks, +> --ryan. +-- +Stephane Peter +Sr. Software Engineer +Codehost, Inc. + + + +From xxxxxxxxxxxx Thu Jul 10 21:07:13 2003 +Date: Fri, 11 Jul 2003 00:08:44 +0200 (CEST) +From: Michael Renner +To: Ryan C. Gordon +Subject: Re: PhysicsFS license change. + + + +On Thu, 10 Jul 2003, Ryan C. Gordon wrote: + +> +> Hey there, +> +> I'm looking to change the licensing on PhysicsFS from LGPL to the zlib +> license. The long explanation is here: + +Hi Ryan! + +For your mailfilters: + +"I approve of a switch to the zlib license for code I own in PhysicsFS." + +The change of license makes sense, what use is a library when the target +audience is reluctant to use it. Keep up the good work. + +Btw. if you need any other non-babelfish english -> german translations +just contact me. + +best regards, +michael renner + +From xxxxxxxxxxxxx Mon Jul 14 16:36:06 2003 +Date: Sat, 12 Jul 2003 22:57:28 -0400 +From: Gregory S. Read +To: Ryan C. Gordon +Subject: Re: PhysicsFS license change. + +I have no problem with you licensing my contributed code for PhysFS to +the zlib licensing. + +Have a nice day. + +Greg + +Ryan C. Gordon wrote: + +>Hey there, +> +>I'm looking to change the licensing on PhysicsFS from LGPL to the zlib +>license. The long explanation is here: +> +> http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?4:mss:209:200306:nhnacekcfbbhichggfpk +> +>If you're reading this, it means that I never got a response on the +>mailing list, either because you aren't subscribed, or because you missed +>it, and this is the last email address I have for you....but I need +>explicit permission from you to convert code you wrote (even if it was +>just a natural language translation) to a different license. +> +>If you don't mind switching to zlib, please respond with something along +>the lines of "I approve of a switch to the zlib license for code I own in +>PhysicsFS." +> +>If you have any problems, that's okay, too, just let me know. +> +>Thanks, +>--ryan. +> +> +> +> + + +From xxxxxxxxxxxx Mon Jul 14 16:36:15 2003 +Date: Mon, 14 Jul 2003 14:26:38 -0600 +From: Tyler Montbriand +To: Ryan C. Gordon +Subject: Re: PhysicsFS license change. + + [ The following text is in the "iso-8859-1" character set. ] + [ Your display is set for the "US-ASCII" character set. ] + [ Some characters may be displayed incorrectly. ] + +Hello. Sorry for delay in reply, things've been messed up for the last couple +while.. + +I think that changing it to the Zlib license is a great idea... never +realized there were those sort of complications with the LGPL - thought it +was a much less restrictive license than your plain vanilla GPL, but I guess +not less restrictive enough. I've no problem at all with you putting any of +the code I've contributed under the Zlib license. + +-Tyler Montbriand/Corona688 + +On Thursday 10 July 2003 12:07 pm, you wrote: +> Hey there, +> +> I'm looking to change the licensing on PhysicsFS from LGPL to the zlib +> license. The long explanation is here: +> +> +> http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?4:mss:209:200306:nhnacekcfbbhich +>ggfpk +> +> If you're reading this, it means that I never got a response on the +> mailing list, either because you aren't subscribed, or because you missed +> it, and this is the last email address I have for you....but I need +> explicit permission from you to convert code you wrote (even if it was +> just a natural language translation) to a different license. +> +> If you don't mind switching to zlib, please respond with something along +> the lines of "I approve of a switch to the zlib license for code I own in +> PhysicsFS." +> +> If you have any problems, that's okay, too, just let me know. +> +> Thanks, +> --ryan. +