Control: retitle 791086 leveldb: libstdc++ transition
Control: tag 791086 + patch

On Fri, 03 Jul 2015 at 13:10:47 +0000, Matthias Klose wrote:
>  - If a library transition is needed, please prepare for the change.
>    Rename the library package, append "v5" to the name of the package
>    (e.g. libfoo2 -> libfoo2v5).

I am unlikely to NMU this since I don't know how to smoke-test the
resulting binaries, but the attached patch appears to work.

With the current leveldb from unstable, litecoin_0.10.2.2-2 FTBFS:

libbitcoin_server.a(libbitcoin_server_a-leveldbwrapper.o): In function 
`HandleError(leveldb::Status const&)':
/«PKGBUILDDIR»/src/leveldbwrapper.cpp:20: undefined reference to 
`leveldb::Status::ToString[abi:cxx11]() const'
libbitcoin_server.a(libbitcoin_server_a-leveldbwrapper.o): In function 
`CLevelDBWrapper::CLevelDBWrapper(boost::filesystem::path const&, unsigned 
long, bool, bool)':
/«PKGBUILDDIR»/src/leveldbwrapper.cpp:66: undefined reference to 
`leveldb::DB::Open(leveldb::Options const&, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, leveldb::DB**)'
/«PKGBUILDDIR»/src/leveldbwrapper.cpp:61: undefined reference to 
`leveldb::DestroyDB(std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&, leveldb::Options const&)'
libbitcoin_server.a(libbitcoin_server_a-txdb.o): In function `bool 
CLevelDBWrapper::Read<std::pair<char, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > >, char>(std::pair<char, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
> const&, char&) const':
/«PKGBUILDDIR»/src/leveldbwrapper.h:105: undefined reference to 
`leveldb::Status::ToString[abi:cxx11]() const'
libbitcoin_server.a(libbitcoin_server_a-txdb.o): In function `bool 
CLevelDBWrapper::Read<char, int>(char const&, int&) const':
/«PKGBUILDDIR»/src/leveldbwrapper.h:105: undefined reference to 
`leveldb::Status::ToString[abi:cxx11]() const'
libbitcoin_server.a(libbitcoin_server_a-txdb.o): In function `bool 
CLevelDBWrapper::Exists<char>(char const&) const':
/«PKGBUILDDIR»/src/leveldbwrapper.h:138: undefined reference to 
`leveldb::Status::ToString[abi:cxx11]() const'
libbitcoin_server.a(libbitcoin_server_a-txdb.o): In function `bool 
CLevelDBWrapper::Exists<std::pair<char, uint256> >(std::pair<char, uint256> 
const&) const':
/«PKGBUILDDIR»/src/leveldbwrapper.h:138: undefined reference to 
`leveldb::Status::ToString[abi:cxx11]() const'
libbitcoin_server.a(libbitcoin_server_a-txdb.o): In function `bool 
CLevelDBWrapper::Read<char, uint256>(char const&, uint256&) const':
/«PKGBUILDDIR»/src/leveldbwrapper.h:105: undefined reference to 
`leveldb::Status::ToString[abi:cxx11]() const'
libbitcoin_server.a(libbitcoin_server_a-txdb.o):/«PKGBUILDDIR»/src/leveldbwrapper.h:105:
 more undefined references to `leveldb::Status::ToString[abi:cxx11]() const' 
follow

With the patched leveldb, litecoin_0.10.2.2-2 successfully builds.
I have not tested it.

Regards,
    S
>From 7b880ef7ab443219291947894a731b2fee0bc570 Mon Sep 17 00:00:00 2001
From: Simon McVittie <[email protected]>
Date: Fri, 7 Aug 2015 10:36:59 +0100
Subject: [PATCH] Rename to libleveldb5 (starts transition: #791086)

---
 debian/changelog             |  7 +++++++
 debian/control               | 10 +++++++---
 debian/libleveldb1.install   |  1 -
 debian/libleveldb1v5.install |  1 +
 4 files changed, 15 insertions(+), 4 deletions(-)
 delete mode 100644 debian/libleveldb1.install
 create mode 100644 debian/libleveldb1v5.install

diff --git a/debian/changelog b/debian/changelog
index 2986507..85c2f59 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+leveldb (1.18-2.2) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Rename to libleveldb5 (starts transition: #791086)
+
+ -- Simon McVittie <[email protected]>  Fri, 07 Aug 2015 10:36:11 +0100
+
 leveldb (1.18-2.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff --git a/debian/control b/debian/control
index 8e56aba..4273ff9 100644
--- a/debian/control
+++ b/debian/control
@@ -11,7 +11,7 @@ Homepage: https://github.com/google/leveldb
 Vcs-Git: git://anonscm.debian.org/collab-maint/leveldb.git
 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/leveldb.git
 
-Package: libleveldb1
+Package: libleveldb1v5
 Section: libs
 Architecture: any
 Multi-Arch: same
@@ -20,6 +20,10 @@ Pre-Depends:
 Depends:
  ${misc:Depends},
  ${shlibs:Depends}
+Conflicts:
+ libleveldb1
+Replaces:
+ libleveldb1
 Description: fast key-value storage library
  LevelDB is a fast key-value storage library written at Google that
  provides an ordered mapping from string keys to string values.
@@ -58,7 +62,7 @@ Section: libdevel
 Architecture: any
 Multi-Arch: same
 Depends:
- libleveldb1 (= ${binary:Version}),
+ libleveldb1v5 (= ${binary:Version}),
  ${misc:Depends},
  ${shlibs:Depends}
 Suggests:
@@ -76,7 +80,7 @@ Multi-Arch: same
 Pre-Depends:
  ${misc:Pre-Depends}
 Depends:
- libleveldb1 (= ${binary:Version}),
+ libleveldb1v5 (= ${binary:Version}),
  ${misc:Depends},
  ${shlibs:Depends}
 Priority: extra
diff --git a/debian/libleveldb1.install b/debian/libleveldb1.install
deleted file mode 100644
index 3de3b10..0000000
--- a/debian/libleveldb1.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/*.so.*
diff --git a/debian/libleveldb1v5.install b/debian/libleveldb1v5.install
new file mode 100644
index 0000000..3de3b10
--- /dev/null
+++ b/debian/libleveldb1v5.install
@@ -0,0 +1 @@
+usr/lib/*/*.so.*
-- 
2.5.0

Reply via email to