[libxml++] Prepare for an ABI/API-breaking release



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]