ibrdtn: Switch to uClibc++
authorRosen Penev <redacted>
Mon, 20 May 2019 02:28:06 +0000 (19:28 -0700)
committerRosen Penev <redacted>
Mon, 27 May 2019 06:06:02 +0000 (23:06 -0700)
Added needed patches. Some are upstream backports.

Signed-off-by: Rosen Penev <redacted>
libs/ibrdtn/Makefile
libs/ibrdtn/patches/010-Add-operator-to-Bundle-block_elem.patch [new file with mode: 0644]
libs/ibrdtn/patches/020-Use-const-iterator-in-const-function-of-MemoryBundle.patch [new file with mode: 0644]
libs/ibrdtn/patches/030-Use-std-streamoff-instead-of-std-streampos.patch [new file with mode: 0644]
libs/ibrdtn/patches/040-Add-operator-to-BundleID-and-MetaBundle.patch [new file with mode: 0644]

index a510c78619919a241455fe3ed4db62659f806c30..c4aceba12c29bc09d7aa8bc8be000bb0cb3a0792 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ibrdtn
 PKG_VERSION:=1.0.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases
@@ -20,6 +20,7 @@ PKG_LICENSE:=Apache-2.0
 PKG_INSTALL:=1
 PKG_FIXUP:=libtool
 
+include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/ibrdtn
diff --git a/libs/ibrdtn/patches/010-Add-operator-to-Bundle-block_elem.patch b/libs/ibrdtn/patches/010-Add-operator-to-Bundle-block_elem.patch
new file mode 100644 (file)
index 0000000..fe53508
--- /dev/null
@@ -0,0 +1,25 @@
+From 199c86591edc7e82b92903efecadc4f69ea63370 Mon Sep 17 00:00:00 2001
+From: Johannes Morgenroth <jm@m-network.de>
+Date: Tue, 1 Jan 2019 11:25:50 +0100
+Subject: [PATCH] Add operator!=() to Bundle::block_elem
+
+Alternative implementations of libstdcpp as uclibc++ use it in
+the algorithm implemenetations.
+---
+ ibrdtn/data/Bundle.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/ibrdtn/data/Bundle.h b/ibrdtn/data/Bundle.h
+index 036a2a6fb..9bbc066d7 100644
+--- a/ibrdtn/data/Bundle.h
++++ b/ibrdtn/data/Bundle.h
+@@ -69,6 +69,9 @@ namespace dtn
+                               bool operator==(const dtn::data::block_t &type) const {
+                                       return (**this) == type;
+                               }
++                              bool operator!=(const dtn::data::block_t &type) const {
++                                      return !((**this) == type);
++                              }
+                       };
+                       typedef std::list<block_elem> block_list;
diff --git a/libs/ibrdtn/patches/020-Use-const-iterator-in-const-function-of-MemoryBundle.patch b/libs/ibrdtn/patches/020-Use-const-iterator-in-const-function-of-MemoryBundle.patch
new file mode 100644 (file)
index 0000000..d1e2c58
--- /dev/null
@@ -0,0 +1,22 @@
+From 6945698778caf7cdaace9ce8dae82162dbe2ee9f Mon Sep 17 00:00:00 2001
+From: Johannes Morgenroth <jm@m-network.de>
+Date: Thu, 3 Jan 2019 07:26:51 +0100
+Subject: [PATCH] Use const iterator in const function of MemoryBundleSet
+
+---
+ ibrdtn/data/MemoryBundleSet.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ibrdtn/data/MemoryBundleSet.cpp b/ibrdtn/data/MemoryBundleSet.cpp
+index 987342e6d..b67fdd393 100644
+--- a/ibrdtn/data/MemoryBundleSet.cpp
++++ b/ibrdtn/data/MemoryBundleSet.cpp
+@@ -134,7 +134,7 @@ namespace dtn
+                               // the bundles set. This happen if the MemoryBundleSet gets deserialized.
+                               if (!_consistent) return true;
+-                              bundle_set::iterator iter = _bundles.find(dtn::data::MetaBundle::create(bundle));
++                              bundle_set::const_iterator iter = _bundles.find(dtn::data::MetaBundle::create(bundle));
+                               return (iter != _bundles.end());
+                       }
diff --git a/libs/ibrdtn/patches/030-Use-std-streamoff-instead-of-std-streampos.patch b/libs/ibrdtn/patches/030-Use-std-streamoff-instead-of-std-streampos.patch
new file mode 100644 (file)
index 0000000..0e29a13
--- /dev/null
@@ -0,0 +1,41 @@
+From 1395d849d73147319ee422d2ce34de0bcb90e6f8 Mon Sep 17 00:00:00 2001
+From: Johannes Morgenroth <jm@m-network.de>
+Date: Thu, 3 Jan 2019 07:34:14 +0100
+Subject: [PATCH] Use std::streamoff instead of std::streampos
+
+---
+ ibrdtn/data/BundleMerger.cpp | 2 +-
+ ibrdtn/data/Dictionary.cpp   | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/ibrdtn/data/BundleMerger.cpp b/ibrdtn/data/BundleMerger.cpp
+index 1cd20c522..b71a0849b 100644
+--- a/ibrdtn/data/BundleMerger.cpp
++++ b/ibrdtn/data/BundleMerger.cpp
+@@ -119,7 +119,7 @@ namespace dtn
+                       }
+                       ibrcommon::BLOB::iostream stream = c._blob.iostream();
+-                      (*stream).seekp(obj.fragmentoffset.get<std::streampos>());
++                      (*stream).seekp(obj.fragmentoffset.get<std::streamoff>());
+                       const dtn::data::PayloadBlock &p = obj.find<dtn::data::PayloadBlock>();
+                       const Length plength = p.getLength();
+diff --git a/ibrdtn/data/Dictionary.cpp b/ibrdtn/data/Dictionary.cpp
+index 6299e66f3..208f90488 100644
+--- a/ibrdtn/data/Dictionary.cpp
++++ b/ibrdtn/data/Dictionary.cpp
+@@ -154,11 +154,11 @@ namespace dtn
+               {
+                       char buffer[1024];
+-                      _bytestream.seekg(scheme.get<std::streampos>());
++                      _bytestream.seekg(scheme.get<std::streamoff>());
+                       _bytestream.get(buffer, 1024, '\0');
+                       std::string scheme_str(buffer);
+-                      _bytestream.seekg(ssp.get<std::streampos>());
++                      _bytestream.seekg(ssp.get<std::streamoff>());
+                       _bytestream.get(buffer, 1024, '\0');
+                       std::string ssp_str(buffer);
diff --git a/libs/ibrdtn/patches/040-Add-operator-to-BundleID-and-MetaBundle.patch b/libs/ibrdtn/patches/040-Add-operator-to-BundleID-and-MetaBundle.patch
new file mode 100644 (file)
index 0000000..df9f27f
--- /dev/null
@@ -0,0 +1,53 @@
+From a5b9c2feeaabbd90c9734c5d865d471eed0d5e3a Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Thu, 28 Mar 2019 01:55:15 -0700
+Subject: [PATCH] Add operator!=() to BundleID and MetaBundle
+
+Needed for uClibc++.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ ibrdtn/data/Bundle.cpp | 10 ++++++++++
+ ibrdtn/data/Bundle.h   |  2 ++
+ 2 files changed, 12 insertions(+)
+
+diff --git a/ibrdtn/data/Bundle.cpp b/ibrdtn/data/Bundle.cpp
+index f515860..943544e 100644
+--- a/ibrdtn/data/Bundle.cpp
++++ b/ibrdtn/data/Bundle.cpp
+@@ -71,11 +71,21 @@ namespace dtn
+                       return other == (const PrimaryBlock&)(*this);
+               }
++              bool Bundle::operator!=(const BundleID& other) const
++              {
++                      return other != (const PrimaryBlock&)(*this);
++              }
++
+               bool Bundle::operator==(const MetaBundle& other) const
+               {
+                       return other == (const PrimaryBlock&)(*this);
+               }
++              bool Bundle::operator!=(const MetaBundle& other) const
++              {
++                      return other != (const PrimaryBlock&)(*this);
++              }
++
+               bool Bundle::operator!=(const Bundle& other) const
+               {
+                       return (const PrimaryBlock&)(*this) != (const PrimaryBlock&)other;
+diff --git a/ibrdtn/data/Bundle.h b/ibrdtn/data/Bundle.h
+index 9bbc066..6a4ea47 100644
+--- a/ibrdtn/data/Bundle.h
++++ b/ibrdtn/data/Bundle.h
+@@ -97,7 +97,9 @@ namespace dtn
+                       virtual ~Bundle();
+                       bool operator==(const BundleID& other) const;
++                      bool operator!=(const BundleID& other) const;
+                       bool operator==(const MetaBundle& other) const;
++                      bool operator!=(const MetaBundle& other) const;
+                       bool operator==(const Bundle& other) const;
+                       bool operator!=(const Bundle& other) const;
git clone https://git.99rst.org/PROJECT