From c575b997d85d4791d852ad43e175d47a64cf8b3c Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Fri, 8 Feb 2002 13:28:40 +0000 Subject: [PATCH] Changed to the MIT Licence updated the doc accordingly preparing 2.4.14 * Copyright Makefile.am README configure.in libxml.spec.in: Changed to the MIT Licence * doc/FAQ.html doc/catalog.html doc/intro.html doc/xml.html doc/xmlio.html: updated the doc accordingly * include/libxml/xmlwin32version.h configure.in: preparing 2.4.14 release * python/generator.py python/libxml.c python/libxml2-python-api.xml python/libxml2class.txt python/libxml_wrap.h python/types.c: fixed the const xmlChar * wrapper and generator, XPath extension functions now use the context as first argument * python/tests/tstxpath.py python/tests/xpath.py python/tests/xpathext.py: Updated the tests accordingly * tree.c: fixed bug #70067 Daniel --- COPYING.LIB | 481 ------------------------------- ChangeLog | 16 + Copyright | 41 ++- Makefile.am | 6 +- README | 3 +- configure.in | 5 +- doc/FAQ.html | 14 +- doc/catalog.html | 2 +- doc/intro.html | 7 +- doc/xml.html | 28 +- doc/xmlio.html | 1 + include/libxml/xmlwin32version.h | 8 +- libxml.spec.in | 6 +- python/generator.py | 11 +- python/libxml.c | 5 +- python/libxml2-python-api.xml | 38 +++ python/libxml2class.txt | 9 + python/libxml_wrap.h | 2 + python/tests/tstxpath.py | 21 +- python/tests/xpath.py | 2 + python/tests/xpathext.py | 6 +- python/types.c | 32 ++ tree.c | 5 + 23 files changed, 194 insertions(+), 555 deletions(-) delete mode 100644 COPYING.LIB diff --git a/COPYING.LIB b/COPYING.LIB deleted file mode 100644 index eb685a5e..00000000 --- a/COPYING.LIB +++ /dev/null @@ -1,481 +0,0 @@ - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link a program 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. - - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal -permission to copy, distribute and/or modify the library. - - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. - - 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, while the latter only -works together with the library. - - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - - GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -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 compile 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) 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. - - c) 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. - - d) 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 source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - 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 to -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 Library 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 - - Appendix: 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 Library General Public - License as published by the Free Software Foundation; either - version 2 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, 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! diff --git a/ChangeLog b/ChangeLog index 96abbf3e..183a0e46 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +Fri Feb 8 14:24:02 CET 2002 Daniel Veillard + + * Copyright Makefile.am README configure.in libxml.spec.in: + Changed to the MIT Licence + * doc/FAQ.html doc/catalog.html doc/intro.html doc/xml.html + doc/xmlio.html: updated the doc accordingly + * include/libxml/xmlwin32version.h configure.in: preparing + 2.4.14 release + * python/generator.py python/libxml.c python/libxml2-python-api.xml + python/libxml2class.txt python/libxml_wrap.h python/types.c: + fixed the const xmlChar * wrapper and generator, XPath extension + functions now use the context as first argument + * python/tests/tstxpath.py python/tests/xpath.py + python/tests/xpathext.py: Updated the tests accordingly + * tree.c: fixed bug #70067 + Thu Feb 7 17:33:58 CET 2002 Daniel Veillard * Makefile.am: cleanup diff --git a/Copyright b/Copyright index 378ff504..d8299f54 100644 --- a/Copyright +++ b/Copyright @@ -1,27 +1,26 @@ -Copyright © 1998 World Wide Web Consortium, (Massachusetts Institute of -Technology, Institut National de Recherche en Informatique et en -Automatique, Keio University). All Rights Reserved. +Except where otherwise noted in the source code (trio files, hash.c and list.c) +covered by a similar licence but with different Copyright notices: -This software is available under the GNU Library Public License as described -in the COPYING.LIB file. + Copyright (C) 1998-2002 Daniel Veillard. All Rights Reserved. -Note that the original distribution from W3C is also available under the -W3C IPR SOFTWARE NOTICE, described at http://www.w3.org/COPYRIGHT.html +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or any later version. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -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 -Library General Public License for more details. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free -Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Daniel Veillard -Fri Jul 24 1998 +Except as contained in this notice, the name of Daniel Veillard shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from him. diff --git a/Makefile.am b/Makefile.am index 2fff4950..134931a5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -550,7 +550,7 @@ dist-hook: libxml.spec (cd $(srcdir) ; tar -cf - --exclude CVS win32 macos vms test result SAXresult ) | (cd $(distdir); tar xf -) cleantar: - @(rm -f libxslt*.tar.gz) + @(rm -f libxslt*.tar.gz COPYING.LIB) rpm: cleantar @(unset CDPATH ; $(MAKE) dist && rpm -ta $(distdir).tar.gz) @@ -565,7 +565,7 @@ CLEANFILES=xml2Conf.sh confexecdir=$(libdir) confexec_DATA = xml2Conf.sh EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml.spec \ - libxml.m4 \ + libxml.m4 Copyright \ example/Makefile.am example/gjobread.c example/gjobs.xml \ $(man_MANS) libxml-2.0.pc.in \ trionan.c trionan.h triostr.c triostr.h trio.c trio.h \ @@ -583,6 +583,8 @@ DOC_MODULE=libxml2-$(VERSION) EXAMPLES_DIR=$(BASE_DIR)/$(DOC_MODULE)/examples install-data-local: + $(mkinstalldirs) $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE) + -@INSTALL@ -m 0644 $(srcdir)/Copyright $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE) $(mkinstalldirs) $(DESTDIR)$(EXAMPLES_DIR) -@INSTALL@ -m 0644 $(srcdir)/xmllint.c $(DESTDIR)$(EXAMPLES_DIR) -@INSTALL@ -m 0644 $(srcdir)/testSAX.c $(DESTDIR)$(EXAMPLES_DIR) diff --git a/README b/README index 8ee6633b..1b795f36 100644 --- a/README +++ b/README @@ -4,8 +4,7 @@ Full documentation is available on-line at http://xmlsoft.org/ -This code is released under the LGPL or the W3C IPR, pick the one -you prefer. +This code is released under the MIT Licence see the Copyright file. A mailing-list xml@gnome.org is available, to subscribe: http://mail.gnome.org/mailman/listinfo/xml diff --git a/configure.in b/configure.in index 3c6af235..9326773a 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ AC_CANONICAL_HOST LIBXML_MAJOR_VERSION=2 LIBXML_MINOR_VERSION=4 -LIBXML_MICRO_VERSION=13 +LIBXML_MICRO_VERSION=14 LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION @@ -538,5 +538,8 @@ AC_SUBST(PYTHON_SITE_PACKAGES) AC_SUBST(M_LIBS) AC_SUBST(RDL_LIBS) +rm -f rm COPYING.LIB COPYING +ln -s Copyright COPYING + AC_OUTPUT(libxml.spec Makefile include/Makefile include/libxml/Makefile doc/Makefile example/Makefile python/Makefile python/tests/Makefile include/libxml/xmlversion.h include/libxml/xmlwin32version.h xml2-config libxml-2.0.pc xml2Conf.sh) diff --git a/doc/FAQ.html b/doc/FAQ.html index 208f7afa..d41dcd09 100644 --- a/doc/FAQ.html +++ b/doc/FAQ.html @@ -94,18 +94,14 @@ A:link, A:visited, A:active { text-decoration: underline }
  1. Licensing Terms for libxml -

    libxml is released under 2 (compatible) licences:

    -
      -
    • the LGPL: GNU - Library General Public License
    • -
    • the W3C - IPR: very similar to the XWindow licence
    • -
    +

    libxml is released under the MIT + Licence, see the file Copyright in the distribution for the precise + wording

  2. Can I embed libxml in a proprietary application ? -

    Yes. The W3C IPR allows you to also keep proprietary the changes you - made to libxml, but it would be graceful to provide back bugfixes and +

    Yes. The MIT Licence allows you to also keep proprietary the changes + you made to libxml, but it would be graceful to provide back bugfixes and improvements as patches for possible incorporation in the main development tree

  3. diff --git a/doc/catalog.html b/doc/catalog.html index cb9b731c..0b400f32 100644 --- a/doc/catalog.html +++ b/doc/catalog.html @@ -398,7 +398,7 @@ literature to point at:

    directory, it will set-up /etc/xml/catalog and /etc/xml/docbook based on the resources found on the system. Otherwise it will just create ~/xmlcatalog and ~/dbkxmlcatalog and doing: -

    export XMLCATALOG=$HOME/xmlcatalog

    +

    export XMLCATALOG=$HOME/xmlcatalog

    should allow to process DocBook documentations without requiring network accesses for the DTd or stylesheets

    diff --git a/doc/intro.html b/doc/intro.html index 15a698aa..d2081be2 100644 --- a/doc/intro.html +++ b/doc/intro.html @@ -100,10 +100,9 @@ structured documents/data.

  4. The internal document repesentation is as close as possible to the DOM interfaces.
  5. Libxml also has a SAX like interface; the interface is designed to be compatible with Expat.
  6. -
  7. This library is released both under the W3C - IPR and the GNU - LGPL. Use either at your convenience, basically this should make - everybody happy, if not, drop me a mail.
  8. +
  9. This library is released under the MIT + Licence see the Copyright file in the distribution for the precise + wording.
  10. Warning: unless you are forced to because your application links with a Gnome library requiring it, Do Not Use libxml1, use diff --git a/doc/xml.html b/doc/xml.html index 03d0daeb..eb92c76c 100644 --- a/doc/xml.html +++ b/doc/xml.html @@ -112,11 +112,10 @@ structured documents/data.

  11. Libxml also has a SAX like interface; the interface is designed to be compatible with Expat.
  12. -
  13. This library is released both under the W3C - IPR and the GNU - LGPL. Use either at your convenience, basically this should make - everybody happy, if not, drop me a mail.
  14. +
  15. This library is released under the MIT + Licence see the Copyright file in the distribution for the precise + wording.
  16. Warning: unless you are forced to because your application links with a @@ -137,18 +136,14 @@ libxml2

    Licence(s)

    1. Licensing Terms for libxml -

      libxml is released under 2 (compatible) licences:

      -
        -
      • the LGPL: GNU - Library General Public License
      • -
      • the W3C - IPR: very similar to the XWindow licence
      • -
      +

      libxml is released under the MIT + Licence, see the file Copyright in the distribution for the precise + wording

    2. Can I embed libxml in a proprietary application ? -

      Yes. The W3C IPR allows you to also keep proprietary the changes you - made to libxml, but it would be graceful to provide back bugfixes and +

      Yes. The MIT Licence allows you to also keep proprietary the changes + you made to libxml, but it would be graceful to provide back bugfixes and improvements as patches for possible incorporation in the main development tree

    3. @@ -2196,6 +2191,7 @@ xmlOutputBufferCreateOwn(FILE *file, xmlCharEncodingHandlerPtr encoder) { + }
    4. And then use it to save the document: @@ -2587,7 +2583,7 @@ literature to point at:

      directory, it will set-up /etc/xml/catalog and /etc/xml/docbook based on the resources found on the system. Otherwise it will just create ~/xmlcatalog and ~/dbkxmlcatalog and doing: -

      export XMLCATALOG=$HOME/xmlcatalog

      +

      export XMLCATALOG=$HOME/xmlcatalog

      should allow to process DocBook documentations without requiring network accesses for the DTd or stylesheets

    5. diff --git a/doc/xmlio.html b/doc/xmlio.html index f881db29..a5488ced 100644 --- a/doc/xmlio.html +++ b/doc/xmlio.html @@ -235,6 +235,7 @@ xmlOutputBufferCreateOwn(FILE *file, xmlCharEncodingHandlerPtr encoder) { + }
    6. And then use it to save the document: diff --git a/include/libxml/xmlwin32version.h b/include/libxml/xmlwin32version.h index 808673de..b010f5cf 100644 --- a/include/libxml/xmlwin32version.h +++ b/include/libxml/xmlwin32version.h @@ -27,21 +27,21 @@ extern void xmlCheckVersion(int version); * * the version string like "1.2.3" */ -#define LIBXML_DOTTED_VERSION "2.4.13" +#define LIBXML_DOTTED_VERSION "2.4.14" /** * LIBXML_VERSION: * * the version number: 1.2.3 value is 1002003 */ -#define LIBXML_VERSION 20413 +#define LIBXML_VERSION 20414 /** * LIBXML_VERSION_STRING: * * the version number string, 1.2.3 value is "1002003" */ -#define LIBXML_VERSION_STRING "20413" +#define LIBXML_VERSION_STRING "20414" /** * LIBXML_TEST_VERSION: @@ -49,7 +49,7 @@ extern void xmlCheckVersion(int version); * Macro to check that the libxml version in use is compatible with * the version the software has been compiled against */ -#define LIBXML_TEST_VERSION xmlCheckVersion(20413); +#define LIBXML_TEST_VERSION xmlCheckVersion(20414); #if 0 /** diff --git a/libxml.spec.in b/libxml.spec.in index e70ddd9f..b432ad60 100644 --- a/libxml.spec.in +++ b/libxml.spec.in @@ -2,7 +2,7 @@ Summary: Library providing XML and HTML support Name: libxml2 Version: @VERSION@ Release: 1 -License: LGPL +License: MIT Group: Development/Libraries Source: ftp://xmlsoft.org/libxml2-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-root @@ -115,7 +115,7 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(-, root, root) -%doc AUTHORS ChangeLog NEWS README COPYING COPYING.LIB TODO +%doc AUTHORS ChangeLog NEWS README Copyright TODO %doc %{_mandir}/man1/xmllint.1* %doc %{_mandir}/man1/xmlcatalog.1* %doc %{_mandir}/man4/libxml.4* @@ -128,6 +128,7 @@ rm -rf $RPM_BUILD_ROOT %defattr(-, root, root) %doc %{_mandir}/man1/xml2-config.1* +%doc AUTHORS ChangeLog NEWS README Copyright TODO %doc doc/*.html doc/html %{prefix}/lib/lib*.so @@ -140,6 +141,7 @@ rm -rf $RPM_BUILD_ROOT %files python %defattr(-, root, root) +%doc AUTHORS ChangeLog NEWS README Copyright %{prefix}/lib/python*/site-packages/libxml2.py %{prefix}/lib/python*/site-packages/_libxml.so %doc python/TODO diff --git a/python/generator.py b/python/generator.py index 0b13c41a..13a10113 100755 --- a/python/generator.py +++ b/python/generator.py @@ -214,9 +214,9 @@ py_types = { 'xmlChar': ('c', None, "int", "int"), 'unsigned char *': ('z', None, "charPtr", "char *"), 'char *': ('z', None, "charPtr", "char *"), - 'const char *': ('z', None, "charPtr", "char *"), + 'const char *': ('z', None, "charPtrConst", "const char *"), 'xmlChar *': ('z', None, "xmlCharPtr", "xmlChar *"), - 'const xmlChar *': ('z', None, "xmlCharPtr", "xmlChar *"), + 'const xmlChar *': ('z', None, "xmlCharPtrConst", "const xmlChar *"), 'xmlNodePtr': ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr"), 'const xmlNodePtr': ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr"), 'xmlNode *': ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr"), @@ -523,7 +523,6 @@ classes_ancestor = { "xmlAttribute" : "xmlNode", } classes_destructors = { - "xpathContext": "xmlXPathFreeContext", "parserCtxt": "xmlFreeParserCtxt", "catalog": "xmlFreeCatalog", } @@ -576,6 +575,12 @@ def nameFixup(function, classe, type, file): elif name[0:10] == "xmlNodeGet" and file == "python_accessor": func = name[10:] func = string.lower(func[0:1]) + func[1:] + elif name[0:17] == "xmlXPathParserGet" and file == "python_accessor": + func = name[17:] + func = string.lower(func[0:1]) + func[1:] + elif name[0:11] == "xmlXPathGet" and file == "python_accessor": + func = name[11:] + func = string.lower(func[0:1]) + func[1:] elif name[0:11] == "xmlACatalog": func = name[11:] func = string.lower(func[0:1]) + func[1:] diff --git a/python/libxml.c b/python/libxml.c index 62d9dcd5..30dfd58d 100644 --- a/python/libxml.c +++ b/python/libxml.c @@ -806,11 +806,12 @@ libxml_xmlXPathFuncCallback(xmlXPathParserContextPtr ctxt, int nargs) { return; } - list = PyTuple_New(nargs); + list = PyTuple_New(nargs + 1); + PyTuple_SetItem(list, 0, libxml_xmlXPathParserContextPtrWrap(ctxt)); for (i = 0;i < nargs;i++) { obj = valuePop(ctxt); cur = libxml_xmlXPathObjectPtrWrap(obj); - PyTuple_SetItem(list, i, cur); + PyTuple_SetItem(list, i + 1, cur); } result = PyEval_CallObject(current_function, list); Py_DECREF(list); diff --git a/python/libxml2-python-api.xml b/python/libxml2-python-api.xml index 94d8f846..24e28af0 100644 --- a/python/libxml2-python-api.xml +++ b/python/libxml2-python-api.xml @@ -36,6 +36,7 @@ + Get the document tree from a parser context. @@ -90,6 +91,7 @@ dump the memory allocated in the file .memdump + Get the namespace of a node @@ -100,5 +102,41 @@ + + + Get the xpathContext from an xpathParserContext + + + + + Get the doc from an xpathContext + + + + + Get the current node from an xpathContext + + + + + Get the current node from an xpathContext + + + + + Get the current node from an xpathContext + + + + + Get the current function name xpathContext + + + + + Get the current function name URI xpathContext + + + diff --git a/python/libxml2class.txt b/python/libxml2class.txt index 00070a53..3e5a3111 100644 --- a/python/libxml2class.txt +++ b/python/libxml2class.txt @@ -374,6 +374,8 @@ Class catalog() resolveSystem() resolveURI() Class xpathParserContext() + # accessors + context() # functions from module xpathInternals xpathAddValues() @@ -507,6 +509,13 @@ Class xmlAttr(xmlNode) freePropList() removeProp() Class xpathContext() + # accessors + contextDoc() + contextNode() + contextPosition() + contextSize() + function() + functionURI() # functions from module python registerXPathFunction() diff --git a/python/libxml_wrap.h b/python/libxml_wrap.h index fb8b79e8..77c07368 100644 --- a/python/libxml_wrap.h +++ b/python/libxml_wrap.h @@ -64,6 +64,8 @@ PyObject * libxml_xmlCharPtrWrap(xmlChar *str); PyObject * libxml_constxmlCharPtrWrap(const xmlChar *str); PyObject * libxml_charPtrWrap(char *str); PyObject * libxml_constcharPtrWrap(const char *str); +PyObject * libxml_charPtrConstWrap(const char *str); +PyObject * libxml_xmlCharPtrConstWrap(const xmlChar *str); PyObject * libxml_xmlDocPtrWrap(xmlDocPtr doc); PyObject * libxml_xmlNodePtrWrap(xmlNodePtr node); PyObject * libxml_xmlAttrPtrWrap(xmlAttrPtr attr); diff --git a/python/tests/tstxpath.py b/python/tests/tstxpath.py index 9fc3d4c4..b27ff2f4 100755 --- a/python/tests/tstxpath.py +++ b/python/tests/tstxpath.py @@ -5,11 +5,20 @@ import libxml2 #memory debug specific libxml2.debugMemory(1) +called = "" -def foo(x): +def foo(ctx, x): + global called + + # + # test that access to the XPath evaluation contexts + # + pctxt = libxml2.xpathParserContext(_obj=ctx) + ctxt = pctxt.context() + called = ctxt.function() return x + 1 -def bar(x): +def bar(ctxt, x): return "%d" % (x + 2) doc = libxml2.parseFile("tst.xml") @@ -21,7 +30,6 @@ if len(res) != 2: if res[0].name != "doc" or res[1].name != "foo": print "xpath query: wrong node set value" sys.exit(1) - libxml2.registerXPathFunction(ctxt._o, "foo", None, foo) libxml2.registerXPathFunction(ctxt._o, "bar", None, bar) i = 10000 @@ -39,7 +47,12 @@ while i > 0: sys.exit(1) i = i - 1 doc.freeDoc() -del ctxt +ctxt.xpathFreeContext() + +if called != "foo": + print "xpath function: failed to access the context" + print "xpath function: %s" % (called) + sys.exit(1) #memory debug specific libxml2.cleanupParser() diff --git a/python/tests/xpath.py b/python/tests/xpath.py index 0d35a99e..73ab735e 100755 --- a/python/tests/xpath.py +++ b/python/tests/xpath.py @@ -23,12 +23,14 @@ if res[0].name != "doc" or res[1].name != "foo": print "xpath query: wrong node set value" sys.exit(1) doc.freeDoc() +ctxt.xpathFreeContext() i = 1000 while i > 0: doc = libxml2.parseFile("tst.xml") ctxt = doc.xpathNewContext() res = ctxt.xpathEval("//*") doc.freeDoc() + ctxt.xpathFreeContext() i = i -1 del ctxt diff --git a/python/tests/xpathext.py b/python/tests/xpathext.py index 14cb69fb..c497b550 100755 --- a/python/tests/xpathext.py +++ b/python/tests/xpathext.py @@ -5,10 +5,10 @@ import libxml2 # Memory debug specific libxml2.debugMemory(1) -def foo(x): +def foo(ctx, x): return x + 1 -def bar(x): +def bar(ctx, x): return "%d" % (x + 2) doc = libxml2.parseFile("tst.xml") @@ -38,7 +38,7 @@ while i > 0: sys.exit(1) i = i - 1 doc.freeDoc() -del ctxt +ctxt.xpathFreeContext() # Memory debug specific libxml2.cleanupParser() diff --git a/python/types.c b/python/types.c index 70f77018..7718d5f1 100644 --- a/python/types.c +++ b/python/types.c @@ -58,6 +58,22 @@ libxml_charPtrWrap(char *str) { return(ret); } +PyObject * +libxml_charPtrConstWrap(const char *str) { + PyObject *ret; + +#ifdef DEBUG + printf("libxml_xmlcharPtrWrap: str = %s\n", str); +#endif + if (str == NULL) { + Py_INCREF(Py_None); + return(Py_None); + } + /* TODO: look at deallocation */ + ret = PyString_FromString(str); + return(ret); +} + PyObject * libxml_xmlCharPtrWrap(xmlChar *str) { PyObject *ret; @@ -75,6 +91,22 @@ libxml_xmlCharPtrWrap(xmlChar *str) { return(ret); } +PyObject * +libxml_xmlCharPtrConstWrap(const xmlChar *str) { + PyObject *ret; + +#ifdef DEBUG + printf("libxml_xmlCharPtrWrap: str = %s\n", str); +#endif + if (str == NULL) { + Py_INCREF(Py_None); + return(Py_None); + } + /* TODO: look at deallocation */ + ret = PyString_FromString(str); + return(ret); +} + PyObject * libxml_constcharPtrWrap(const char *str) { PyObject *ret; diff --git a/tree.c b/tree.c index 23d2c6a2..4d86c7e1 100644 --- a/tree.c +++ b/tree.c @@ -3446,6 +3446,11 @@ xmlDocSetRootElement(xmlDocPtr doc, xmlNodePtr root) { xmlNodePtr old = NULL; if (doc == NULL) return(NULL); + if (root == NULL) + return(NULL); + xmlUnlinkNode(root); + root->doc = doc; + root->parent = (xmlNodePtr) doc; old = doc->children; while (old != NULL) { if (old->type == XML_ELEMENT_NODE)