Package: src:lucene++
Version: 3.0.7-5
Severity: serious
Tags: patch

Control: user release.debian....@packages.debian.org
Control: usertag -1 + transition
Control: block -1 by 790756

Hi,

lucene++ changes ABI in public symbols when built with g++ 5 (sorry, I
don't have a diff handy but I can get one if you want - BTW a symbols
file would be nice!). This means that it needs to be transitioned.

I've done this in Ubuntu, and here's a diff for Debian for you to review
and hopefully upload.

The diff also includes an upstream fix to bulid against boost 1.58.

Cheers,

-- 
Iain Lane                                  [ i...@orangesquash.org.uk ]
Debian Developer                                   [ la...@debian.org ]
Ubuntu Developer                                   [ la...@ubuntu.com ]
diff -Nru lucene++-3.0.7/debian/control lucene++-3.0.7/debian/control
--- lucene++-3.0.7/debian/control	2015-04-28 13:57:53.000000000 +0100
+++ lucene++-3.0.7/debian/control	2015-08-05 22:46:58.000000000 +0100
@@ -21,8 +21,8 @@
 Package: liblucene++-dev
 Section: libdevel
 Architecture: any
-Depends: liblucene++-contrib0 (= ${binary:Version}),
-         liblucene++0 (= ${binary:Version}),
+Depends: liblucene++-contrib0v5 (= ${binary:Version}),
+         liblucene++0v5 (= ${binary:Version}),
          ${misc:Depends},
          ${shlibs:Depends}
 Description: Development files for Lucene++
@@ -41,22 +41,26 @@
  .
  This package contains the reference manual and examples.
 
-Package: liblucene++0
+Package: liblucene++0v5
 Architecture: any
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: ${misc:Depends}, ${shlibs:Depends}
+Conflicts: liblucene++0
+Replaces: liblucene++0
 Description: Shared library for Lucene++
  Lucene++ is an up to date C++ port of the popular Java Lucene
  library, a high-performance, full-featured text search engine.
  .
  This package contains the shared library.
 
-Package: liblucene++-contrib0
+Package: liblucene++-contrib0v5
 Architecture: any
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: ${misc:Depends}, ${shlibs:Depends}
+Conflicts: liblucene++-contrib0v5
+Replaces: liblucene++-contrib0v5
 Description: Shared library with Lucene++ contributions
  Lucene++ is an up to date C++ port of the popular Java Lucene
  library, a high-performance, full-featured text search engine.
diff -Nru lucene++-3.0.7/debian/liblucene++0.install lucene++-3.0.7/debian/liblucene++0.install
--- lucene++-3.0.7/debian/liblucene++0.install	2015-01-30 22:43:56.000000000 +0000
+++ lucene++-3.0.7/debian/liblucene++0.install	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-usr/lib/*/liblucene++.so.*
diff -Nru lucene++-3.0.7/debian/liblucene++0v5.install lucene++-3.0.7/debian/liblucene++0v5.install
--- lucene++-3.0.7/debian/liblucene++0v5.install	1970-01-01 01:00:00.000000000 +0100
+++ lucene++-3.0.7/debian/liblucene++0v5.install	2015-01-30 22:43:56.000000000 +0000
@@ -0,0 +1 @@
+usr/lib/*/liblucene++.so.*
diff -Nru lucene++-3.0.7/debian/liblucene++0v5.lintian-overrides lucene++-3.0.7/debian/liblucene++0v5.lintian-overrides
--- lucene++-3.0.7/debian/liblucene++0v5.lintian-overrides	1970-01-01 01:00:00.000000000 +0100
+++ lucene++-3.0.7/debian/liblucene++0v5.lintian-overrides	2015-08-05 23:03:16.000000000 +0100
@@ -0,0 +1,2 @@
+# G++5 ABI transition
+liblucene++0v5: package-name-doesnt-match-sonames liblucene++0
diff -Nru lucene++-3.0.7/debian/liblucene++-contrib0.install lucene++-3.0.7/debian/liblucene++-contrib0.install
--- lucene++-3.0.7/debian/liblucene++-contrib0.install	2015-01-30 22:43:56.000000000 +0000
+++ lucene++-3.0.7/debian/liblucene++-contrib0.install	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-usr/lib/*/liblucene++-contrib.so.*
diff -Nru lucene++-3.0.7/debian/liblucene++-contrib0v5.install lucene++-3.0.7/debian/liblucene++-contrib0v5.install
--- lucene++-3.0.7/debian/liblucene++-contrib0v5.install	1970-01-01 01:00:00.000000000 +0100
+++ lucene++-3.0.7/debian/liblucene++-contrib0v5.install	2015-01-30 22:43:56.000000000 +0000
@@ -0,0 +1 @@
+usr/lib/*/liblucene++-contrib.so.*
diff -Nru lucene++-3.0.7/debian/liblucene++-contrib0v5.lintian-overrides lucene++-3.0.7/debian/liblucene++-contrib0v5.lintian-overrides
--- lucene++-3.0.7/debian/liblucene++-contrib0v5.lintian-overrides	1970-01-01 01:00:00.000000000 +0100
+++ lucene++-3.0.7/debian/liblucene++-contrib0v5.lintian-overrides	2015-08-05 22:52:59.000000000 +0100
@@ -0,0 +1,2 @@
+# G++5 ABI transition
+liblucene++-contrib0v5: package-name-doesnt-match-sonames liblucene++-contrib0
diff -Nru lucene++-3.0.7/debian/patches/0001-Fix-compilation-with-Boost-1.58.patch lucene++-3.0.7/debian/patches/0001-Fix-compilation-with-Boost-1.58.patch
--- lucene++-3.0.7/debian/patches/0001-Fix-compilation-with-Boost-1.58.patch	1970-01-01 01:00:00.000000000 +0100
+++ lucene++-3.0.7/debian/patches/0001-Fix-compilation-with-Boost-1.58.patch	2015-08-05 22:29:41.000000000 +0100
@@ -0,0 +1,42 @@
+From 1987082cf9278a639d772b4f35a8ae2d34944177 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Va=CC=81clav=20Slavi=CC=81k?= <vac...@slavik.io>
+Date: Mon, 4 May 2015 18:04:46 +0200
+Subject: [PATCH] Fix compilation with Boost 1.58
+
+1.58 introduces strict type checking in boost::get() and while that's
+good in theory, the VariantUtils code makes it impractical to use.
+Instead, use relaxed_get() to get the old behavior. relaxed_get() didn't
+exist in older versions of Boost, so the code must check BOOST_VERSION.
+
+Fixes #93.
+---
+ include/VariantUtils.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/include/VariantUtils.h b/include/VariantUtils.h
+index 1e6c243..5a72e59 100644
+--- a/include/VariantUtils.h
++++ b/include/VariantUtils.h
+@@ -8,6 +8,7 @@
+ #define VARIANTUTILS_H
+ 
+ #include <boost/any.hpp>
++#include <boost/version.hpp>
+ #include "Lucene.h"
+ #include "MiscUtils.h"
+ 
+@@ -22,7 +23,11 @@ public:
+ 
+     template <typename TYPE, typename VAR>
+     static TYPE get(VAR var) {
++#if BOOST_VERSION < 105800
+         return var.type() == typeid(TYPE) ? boost::get<TYPE>(var) : TYPE();
++#else
++        return var.type() == typeid(TYPE) ? boost::relaxed_get<TYPE>(var) : TYPE();
++#endif
+     }
+ 
+     template <typename TYPE, typename VAR>
+-- 
+2.5.0
+
diff -Nru lucene++-3.0.7/debian/patches/series lucene++-3.0.7/debian/patches/series
--- lucene++-3.0.7/debian/patches/series	2015-07-16 17:15:04.000000000 +0100
+++ lucene++-3.0.7/debian/patches/series	2015-08-05 22:29:41.000000000 +0100
@@ -1,3 +1,4 @@
 #disable-snowball.patch
 0001-Fix-packageconfig-path.patch
 afd772ba14954c8785ce17a376759ba9525f3315.patch
+0001-Fix-compilation-with-Boost-1.58.patch

Reply via email to