[libxml++] Prepare for an ABI/API-breaking release
- From: Kjell Ahlstedt <kjellahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libxml++] Prepare for an ABI/API-breaking release
- Date: Mon, 14 Sep 2015 11:20:27 +0000 (UTC)
commit 2da7d1ea4502c5054fe966291c830482048a13c2
Author: Kjell Ahlstedt <kjell ahlstedt bredband net>
Date: Mon Sep 14 13:16:40 2015 +0200
Prepare for an ABI/API-breaking release
* .gitignore: 2.6 -> *.
* NEWS: Note that the next release will break ABI.
* README: 2.6 -> 3.0
* configure.ac: Version 2.90.0, 2.6 -> 3.0, reset LIBXMLXX_SO_VERSION to 0:0:0.
* docs/manual/libxml++_without_code.xml: 2.6 -> 3.0
* libxml++/libxml++.h: 2.6 -> 3.0
* libxml++-2.6.pc.in: Rename to libxml++.pc.in.
* libxml++.pc.in: Rename from libxml++-2.6.pc.in. Bug #754673.
The libxml++-2-40 branch is intended for future 2.40.x releases with the
libxml++-2.6 ABI.
.gitignore | 6 +++---
NEWS | 10 ++++++++--
README | 12 ++++++------
configure.ac | 16 ++++++++++------
docs/manual/libxml++_without_code.xml | 8 ++++----
libxml++-2.6.pc.in => libxml++.pc.in | 0
libxml++/libxml++.h | 8 +++++---
7 files changed, 36 insertions(+), 24 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 2c27b84..e642859 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,7 +21,7 @@ stamp-h?
/config.status
/configure
/configure.lineno
-/libxml++-2.6.pc
+/libxml++-*.pc
/libxml++-*.tar.*
/libtool
@@ -39,8 +39,8 @@ stamp-h?
/docs/reference/Doxyfile
/docs/reference/doxygen.log
/docs/reference/html/
-/docs/reference/libxml++-2.6.devhelp2
-/docs/reference/libxml++-2.6.tag
+/docs/reference/libxml++-*.devhelp2
+/docs/reference/libxml++-*.tag
# examples
/examples/dom_build/dom_build
diff --git a/NEWS b/NEWS
index 3f03781..cee70a1 100644
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,14 @@
+2.90.0 (unstable):
+
+* Renamed ABI from libxml++-2.6 to libxml++-3.0.
+ This requires applications to change their pkg-config check to libxml++-3.0
+ when they wish to use libxml++ 2.9x or 3.x instead of libxml++ 2.x.
+
2.39.2 (unstable):
* SaxParser: Fix “double free or corruption” if a std::exception is thrown
by a handler method.
- (Daniel Trebbien, Kjell Ahlstedt)
+ (Daniel Trebbien, Kjell Ahlstedt) Bug #753570
* Replace some (deprecated in C++11) std::auto_ptr by std::unique_ptr.
There are still some auto_ptrs in header files bug replacing them would
break ABI.
@@ -17,7 +23,7 @@
* Fix the build with C++11 compilers, such as MS Visual C++ 2013 - Implicit
conversions from streams to bool are no longer allowed.)
- (Mikhail Titov)
+ (Mikhail Titov) Bug #748658
* Build: Disable deprecated API in dependencies if --enable-warnings=fatal
(Kjell Ahlstedt)
* Build: Require libxml2 2.7.7 or later
diff --git a/README b/README
index 7474a6a..cb4ff96 100644
--- a/README
+++ b/README
@@ -1,14 +1,15 @@
libxml++
-------------
-This library provides a C++ interface to XML files. It uses libxml 2 to access
-the XML files, and in order to configure libxml++ you must have both libxml and
+This library provides a C++ interface to XML files. It uses libxml2 to access
+the XML files, and in order to configure libxml++ you must have both libxml2 and
pkg-config installed.
To get the latest version of libxml++, see
http://libxmlplusplus.sourceforge.net/
-To contact the developers, send e-mail to the mailing list. We welcome patches,
-but it helps to discuss them first.
+To contact the developers, send e-mail to the mailing list at
+http://mail.gnome.org/mailman/listinfo/libxmlplusplus-list
+We welcome patches, but it helps to discuss them first.
Read the file 'INSTALL' for instructions to compile and install the library.
@@ -16,6 +17,5 @@ See the examples directory for example code.
Use pkg-config to discover the necessary include and linker arguments. For
instance,
- pkg-config libxml++-2.6 --cflags --libs
+ pkg-config libxml++-3.0 --cflags --libs
Ideally you would use PKG_CHECK_MODULES in your configure.ac file.
-See http://www.openismus.com for generic help with that.
diff --git a/configure.ac b/configure.ac
index 6fce880..673198b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,6 @@
-AC_INIT([libxml++], [2.39.2],
+## This file is part of libxml++.
+
+AC_INIT([libxml++], [2.90.0],
[https://bugzilla.gnome.org/enter_bug.cgi?product=libxml%2B%2B],
[libxml++], [http://libxmlplusplus.sourceforge.net/])
AC_PREREQ([2.59])
@@ -14,15 +16,17 @@ AM_MAINTAINER_MODE([disable])
AC_ARG_VAR([ACLOCAL_FLAGS], [aclocal flags, e.g. -I <macro dir>])
MM_PREREQ([0.9.8])
-MM_INIT_MODULE([libxml++-2.6])
+MM_INIT_MODULE([libxml++-3.0])
-# Copy the mm-common .pl scripts into docs/,
-# and use them from there,
+# Tell mm-common-prepare to copy the mm-common .pl scripts
+# and some other files into docs/, and use them from there,
# so we can dist them to avoid a tarball-build dependency.
MM_CONFIG_DOCTOOL_DIR([docs])
+# libxml++ does not use libtool's versioning system.
+# Let LIBXMLXX_SO_VERSION remain equal to 0:0:0.
# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
-AC_SUBST([LIBXMLXX_SO_VERSION], [2:7:0])
+AC_SUBST([LIBXMLXX_SO_VERSION], [0:0:0])
AC_PROG_CXX
MM_AX_CXX_COMPILE_STDCXX_11([noext],[mandatory])
@@ -66,7 +70,7 @@ AC_CONFIG_FILES([Makefile
docs/Makefile
docs/reference/Doxyfile
MSVC_Net2010/libxml++/libxml++.rc
- libxml++-2.6.pc])
+ ${LIBXMLXX_MODULE_NAME}.pc:libxml++.pc.in])
# Copy the generated configuration headers into the MSVC project directories.
AC_CONFIG_COMMANDS([MSVC_Net2010/libxml++/libxml++config.h],
diff --git a/docs/manual/libxml++_without_code.xml b/docs/manual/libxml++_without_code.xml
index bba9147..1648f9f 100644
--- a/docs/manual/libxml++_without_code.xml
+++ b/docs/manual/libxml++_without_code.xml
@@ -44,10 +44,10 @@ url="http://www.gnome.org">GNOME</ulink> project, of which libxml++ is a part.</
<para>libxml++ is packaged by major Linux and *BSD distributions and can be installed from source on
Linux and Windows, using any modern compiler, such as g++, SUN Forte, or MSVC++.</para>
<para>For instance, to install libxml++ and its documentation on debian, use apt-get or synaptic like so:
<programlisting>
- # apt-get install libxml++2.6-dev libxml++2.6-doc
+ # apt-get install libxml++3.0-dev libxml++3.0-doc
</programlisting>
</para>
- <para>To check that you have the libxml++ development packages installed, and that your environment is
working properly, try <command>pkg-config libxml++-2.6 --modversion</command>.</para>
+ <para>To check that you have the libxml++ development packages installed, and that your environment is
working properly, try <command>pkg-config libxml++-3.0 --modversion</command>.</para>
<para>Links for downloading and more documentation can be found at <ulink
url="http://libxmlplusplus.sourceforge.net">libxmlplusplus.sourceforge.net</ulink>.
libxml++ is licensed under the LGPL, which allows its use via dynamic linking in both open source and
closed-source software. The underlying libxml2 library uses the even more generous MIT licence.</para>
@@ -64,11 +64,11 @@ url="http://libxmlplusplus.sourceforge.net">libxmlplusplus.sourceforge.net</ulin
<sect1>
<title>Compilation and Linking</title>
<para>To use libxml++ in your application, you must tell the compiler where to find the include headers
and where to find the libxml++ library. libxml++ provides a pkg-config .pc file to make this easy. For
instance, the following command will provide the necessary compiler options:
- <command>pkg-config libxml++-2.6 --cflags --libs</command>
+ <command>pkg-config libxml++-3.0 --cflags --libs</command>
</para>
<para>When using autoconf and automake, this is even easier with the PKG_CHECK_MODULES macro in your
configure.ac file. For instance:
<programlisting>
- PKG_CHECK_MODULES(SOMEAPP, libxml++-2.6 >= 2.38.0)
+ PKG_CHECK_MODULES(SOMEAPP, libxml++-3.0 >= 3.0.0)
AC_SUBST(SOMEAPP_CFLAGS)
AC_SUBST(SOMEAPP_LIBS)
</programlisting>
diff --git a/libxml++-2.6.pc.in b/libxml++.pc.in
similarity index 100%
rename from libxml++-2.6.pc.in
rename to libxml++.pc.in
diff --git a/libxml++/libxml++.h b/libxml++/libxml++.h
index 1338b48..8aafb5c 100644
--- a/libxml++/libxml++.h
+++ b/libxml++/libxml++.h
@@ -14,7 +14,7 @@
* libxml++ is a C++ wrapper for the <a href="http://xmlsoft.org/">libxml2</a> XML parser and builder
library. It presents a
* simple C++-like API that can achieve common tasks with less code.
*
- * See also the <a href="http://library.gnome.org/devel/libxml++-tutorial/stable/">libxml++ Tutorial</a> and
the <a href="http://libxmlplusplus.sourceforge.net/">libxml++ website</a>.
+ * See also the <a href="http://developer.gnome.org/libxml++-tutorial/stable/">libxml++ Tutorial</a> and the
<a href="http://libxmlplusplus.sourceforge.net/">libxml++ website</a>.
*
* @section features Features
*
@@ -33,12 +33,14 @@
*
* If your source file is @c program.cc, you can compile it with:
* @code
- * g++ program.cc -o program `pkg-config --cflags --libs libxml++-2.6`
+ * g++ program.cc -o program `pkg-config --cflags --libs libxml++-3.0`
* @endcode
+ * If your version of g++ is not C++11-compliant be default,
+ * add the @c -std=c++11 or @c -std=c++0x option.
*
* Alternatively, if using autoconf, use the following in @c configure.ac:
* @code
- * PKG_CHECK_MODULES([LIBXMLXX], [libxml++-2.6])
+ * PKG_CHECK_MODULES([LIBXMLXX], [libxml++-3.0])
* @endcode
* Then use the generated @c LIBXMLXX_CFLAGS and @c LIBXMLXX_LIBS variables in
* the project @c Makefile.am files. For example:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]