commit:     e476ef39ac7c594138da4afe29f1d1bfe001ba8b
Author:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 20 08:03:05 2015 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Jul 20 08:03:05 2015 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=e476ef39

sys-block/thin-provisioning-tools: strerror_r() returns and in, not char *

Package-Manager: portage-2.2.18
RepoMan-Options: --force
Manifest-Sign-Key: 0xF52D4BBA

 sys-block/thin-provisioning-tools/Manifest         |   5 +
 ...guity-between-boost-uint64_t-and-uint64_t.patch | 214 +++++++++++++++++++++
 ...ioning-tools-0.3.2-strerror_r-returns-int.patch |  33 ++++
 sys-block/thin-provisioning-tools/metadata.xml     |  15 ++
 .../thin-provisioning-tools-0.3.2-r99.ebuild       |  52 +++++
 5 files changed, 319 insertions(+)

diff --git a/sys-block/thin-provisioning-tools/Manifest 
b/sys-block/thin-provisioning-tools/Manifest
new file mode 100644
index 0000000..0fee6fb
--- /dev/null
+++ b/sys-block/thin-provisioning-tools/Manifest
@@ -0,0 +1,5 @@
+AUX 
thin-provisioning-tools-0.3.2-Remove-ambiguity-between-boost-uint64_t-and-uint64_t.patch
 6866 SHA256 377c4b1b2caec23243e3cab6660ea736006a3c859e1a1b49831a481b631b230e 
SHA512 
1f52f99d5fe41718b45558270b59be882cab54c962db2048fdb934321b5753957587ac62a9507fd7a89e45fceaeda1d8f2189af28188e2c8742783be1dd1421b
 WHIRLPOOL 
0d5f856f23e023a696041b28b7a1ae39b28bf6bb7b2a82ccf30db98ea817fd5bd37676c7f046d0451db303fe2ecc54fcb5922da02856cba13455d3c9d275659b
+AUX thin-provisioning-tools-0.3.2-strerror_r-returns-int.patch 1384 SHA256 
b604495e13eeb02bbf9c3970053249f57f54fb5af8a1565e75563d434dd42ca5 SHA512 
93edbfe491bc491946c47a62ac2020b65b70e5196dc475a99ca001942a0869ff7c4e5a017172d2e5530c6dfc48a5ac8565d6a27134e3a54cd14601ff6ffe7574
 WHIRLPOOL 
39afca367a4592da272cf9639f276fb2350e9ada3902a37f77297c9dd3020f997598e05eabda00a28e592ab081356c7b195239c48c33a7e80382ffc41e9c4b4e
+DIST thin-provisioning-tools-0.3.2.tar.gz 175049 SHA256 
1b9d8e9269cffe06f3c87214d35436225e12599debefbf1a50194c69cc3404ca SHA512 
d6e18c303769b39c5bd48ef30d2819adc57d2d87b3c9b56d5d72468fb35f9b7b2309d35c6c12eabc36d653dd85338b9ad2fca9eed5c738a87b932b71f3a6da4f
 WHIRLPOOL 
b1bd87aa1995ba0616001837247c962c492d0029cb8a89b97aa326eb63d8a89113905f5d34490593e0cfcca33ef074e02a50679d22c3b1859d8fe5b97368c608
+EBUILD thin-provisioning-tools-0.3.2-r99.ebuild 1489 SHA256 
7cd94d475a27243363579266113ea739aa42f25deda72ad63a5e0d0b6c80547c SHA512 
120c03e0879113710d87f14b91f85f06362d1f01521e88c8cdddef24ad39bac99113622e3a13578bc32e7cdcc785e4e106c1ccf987b95c411db9efaca8f73085
 WHIRLPOOL 
61d8fa61e9cfdf3062ead6009c06ec5d6277ec1e1bbd37227596668c34859481a9c25e6293a4ec3751b93ce6bdb162a5b164a3afba72694e134baf62352a59ab
+MISC metadata.xml 457 SHA256 
8283b979ca234301828c060894ba654b7731811ccfb860dde7cba90dafd05ba8 SHA512 
838f6d3e2514c91dbcef049b0dd866fc71c8a0040c1bbb128a2613063f298d40dfb63391de97016cc768811c0cc19e93b89ff8c2061f01cc044048a8c090e1ce
 WHIRLPOOL 
254971786e417e803815d12032e5ebcdcbe533f719acafbdb0b8dd75521f33e085f5f4a501379a8e95e739656290f12a37ed29c3a4ba03e98cb57dc5c32d1698

diff --git 
a/sys-block/thin-provisioning-tools/files/thin-provisioning-tools-0.3.2-Remove-ambiguity-between-boost-uint64_t-and-uint64_t.patch
 
b/sys-block/thin-provisioning-tools/files/thin-provisioning-tools-0.3.2-Remove-ambiguity-between-boost-uint64_t-and-uint64_t.patch
new file mode 100644
index 0000000..9dd9780
--- /dev/null
+++ 
b/sys-block/thin-provisioning-tools/files/thin-provisioning-tools-0.3.2-Remove-ambiguity-between-boost-uint64_t-and-uint64_t.patch
@@ -0,0 +1,214 @@
+From e77e8715b0a91a60cf2c4b85933b1063385da122 Mon Sep 17 00:00:00 2001
+From: Joe Thornber <[email protected]>
+Date: Wed, 2 Jul 2014 08:19:20 +0000
+Subject: Remove ambiguity between boost::uint64_t and ::uint64_t.
+
+This has been causing people problems on uclibc builds.
+---
+ caching/cache_metadata_size.cc            | 15 +++++++--------
+ caching/xml_format.cc                     |  7 +++----
+ era/superblock.cc                         |  5 ++---
+ era/writeset_tree.cc                      |  5 ++---
+ persistent-data/data-structures/bitset.cc |  7 +++----
+ thin-provisioning/device_tree.h           |  4 +---
+ thin-provisioning/metadata_dumper.cc      |  2 +-
+ 7 files changed, 19 insertions(+), 26 deletions(-)
+
+diff --git a/caching/cache_metadata_size.cc b/caching/cache_metadata_size.cc
+index 7584da6..5792c49 100644
+--- a/caching/cache_metadata_size.cc
++++ b/caching/cache_metadata_size.cc
+@@ -7,7 +7,6 @@
+ #include <stdint.h>
+ #include <stdexcept>
+ 
+-using namespace boost;
+ using namespace std;
+ 
+ //----------------------------------------------------------------
+@@ -18,9 +17,9 @@ namespace {
+                       : max_hint_width(4) {
+               }
+ 
+-              optional<uint64_t> device_size;
+-              optional<uint32_t> block_size;
+-              optional<uint64_t> nr_blocks;
++              boost::optional<uint64_t> device_size;
++              boost::optional<uint32_t> block_size;
++              boost::optional<uint64_t> nr_blocks;
+               uint32_t max_hint_width;
+       };
+ 
+@@ -58,19 +57,19 @@ namespace {
+               while ((c = getopt_long(argc, argv, short_opts, long_opts, 
NULL)) != -1) {
+                       switch (c) {
+                       case 0:
+-                              fs.block_size = lexical_cast<uint32_t>(optarg);
++                              fs.block_size = 
boost::lexical_cast<uint32_t>(optarg);
+                               break;
+ 
+                       case 1:
+-                              fs.device_size = lexical_cast<uint64_t>(optarg);
++                              fs.device_size = 
boost::lexical_cast<uint64_t>(optarg);
+                               break;
+ 
+                       case 2:
+-                              fs.nr_blocks = lexical_cast<uint64_t>(optarg);
++                              fs.nr_blocks = 
boost::lexical_cast<uint64_t>(optarg);
+                               break;
+ 
+                       case 3:
+-                              fs.max_hint_width = 
lexical_cast<uint32_t>(optarg);
++                              fs.max_hint_width = 
boost::lexical_cast<uint32_t>(optarg);
+                               break;
+ 
+                       case 'h':
+diff --git a/caching/xml_format.cc b/caching/xml_format.cc
+index cb03018..84d6fc2 100644
+--- a/caching/xml_format.cc
++++ b/caching/xml_format.cc
+@@ -5,7 +5,6 @@
+ #include <boost/lexical_cast.hpp>
+ #include <expat.h>
+ 
+-using namespace boost;
+ using namespace caching;
+ using namespace persistent_data;
+ using namespace std;
+@@ -189,14 +188,14 @@ namespace {
+ 
+               block_address cblock = get_attr<uint64_t>(attr, "cache_block");
+               decoded_or_error doe = base64_decode(get_attr<string>(attr, 
"data"));
+-              if (!get<vector<unsigned char> >(&doe)) {
++              if (!boost::get<vector<unsigned char> >(&doe)) {
+                       ostringstream msg;
+                       msg << "invalid base64 encoding of hint for cache block 
"
+-                          << cblock << ": " << get<string>(doe);
++                          << cblock << ": " << boost::get<string>(doe);
+                       throw runtime_error(msg.str());
+               }
+ 
+-              e->hint(cblock, get<vector<unsigned char> >(doe));
++              e->hint(cblock, boost::get<vector<unsigned char> >(doe));
+       }
+ 
+       // FIXME: why passing e by ptr?
+diff --git a/era/superblock.cc b/era/superblock.cc
+index 1bd1a4f..c319e9b 100644
+--- a/era/superblock.cc
++++ b/era/superblock.cc
+@@ -4,7 +4,6 @@
+ #include "persistent-data/errors.h"
+ 
+ using namespace base;
+-using namespace boost;
+ using namespace era;
+ using namespace superblock_damage;
+ using namespace persistent_data;
+@@ -149,8 +148,8 @@ superblock_traits::unpack(disk_type const &disk, 
value_type &value)
+ 
+       block_address ms = to_cpu<uint64_t>(disk.metadata_snap);
+       value.metadata_snap = (ms == SUPERBLOCK_LOCATION) ?
+-              optional<block_address>() :
+-              optional<block_address>(ms);
++              boost::optional<block_address>() :
++              boost::optional<block_address>(ms);
+ }
+ 
+ void
+diff --git a/era/writeset_tree.cc b/era/writeset_tree.cc
+index 54aa6a1..4e2c478 100644
+--- a/era/writeset_tree.cc
++++ b/era/writeset_tree.cc
+@@ -2,7 +2,6 @@
+ #include "persistent-data/data-structures/btree_damage_visitor.h"
+ #include "persistent-data/data-structures/bitset.h"
+ 
+-using namespace boost;
+ using namespace era;
+ using namespace writeset_tree_detail;
+ using namespace persistent_data;
+@@ -90,8 +89,8 @@ namespace {
+       private:
+               template <typename T>
+               run<uint32_t> to_uint32(run<T> const &r) {
+-                      return run<uint32_t>(optional<uint32_t>(r.begin_),
+-                                           optional<uint32_t>(r.end_));
++                      return 
run<uint32_t>(boost::optional<uint32_t>(r.begin_),
++                                           boost::optional<uint32_t>(r.end_));
+               }
+ 
+               damage_visitor &v_;
+diff --git a/persistent-data/data-structures/bitset.cc 
b/persistent-data/data-structures/bitset.cc
+index 5851e28..e49e19f 100644
+--- a/persistent-data/data-structures/bitset.cc
++++ b/persistent-data/data-structures/bitset.cc
+@@ -2,7 +2,6 @@
+ #include "persistent-data/data-structures/bitset.h"
+ #include "persistent-data/math_utils.h"
+ 
+-using namespace boost;
+ using namespace persistent_data;
+ using namespace persistent_data::bitset_detail;
+ using namespace std;
+@@ -12,7 +11,7 @@ using namespace std;
+ namespace {
+       struct bitset_traits {
+               typedef base::le64 disk_type;
+-              typedef uint64_t value_type;
++              typedef ::uint64_t value_type;
+               typedef no_op_ref_counter<uint64_t> ref_counter;
+ 
+               static void unpack(disk_type const &disk, value_type &value) {
+@@ -118,11 +117,11 @@ namespace persistent_data {
+                               }
+ 
+                       private:
+-                              optional<uint32_t> 
lifted_mult64(optional<uint32_t> const &m) {
++                              boost::optional<uint32_t> 
lifted_mult64(boost::optional<uint32_t> const &m) {
+                                       if (!m)
+                                               return m;
+ 
+-                                      return optional<uint32_t>(*m * 64);
++                                      return boost::optional<uint32_t>(*m * 
64);
+                               }
+ 
+                               bitset_visitor &v_;
+diff --git a/thin-provisioning/device_tree.h b/thin-provisioning/device_tree.h
+index 320eb73..23ae924 100644
+--- a/thin-provisioning/device_tree.h
++++ b/thin-provisioning/device_tree.h
+@@ -4,8 +4,6 @@
+ #include "persistent-data/data-structures/btree.h"
+ #include "persistent-data/run.h"
+ 
+-using namespace boost;
+-
+ //----------------------------------------------------------------
+ 
+ namespace thin_provisioning {
+@@ -50,7 +48,7 @@ namespace thin_provisioning {
+ 
+               class damage_visitor {
+               public:
+-                      typedef shared_ptr<damage_visitor> ptr;
++                      typedef boost::shared_ptr<damage_visitor> ptr;
+ 
+                       virtual ~damage_visitor() {}
+ 
+diff --git a/thin-provisioning/metadata_dumper.cc 
b/thin-provisioning/metadata_dumper.cc
+index dfe18e0..0bd284e 100644
+--- a/thin-provisioning/metadata_dumper.cc
++++ b/thin-provisioning/metadata_dumper.cc
+@@ -226,7 +226,7 @@ thin_provisioning::metadata_dump(metadata::ptr md, 
emitter::ptr e, bool repair)
+                           md->sb_.trans_id_,
+                           md->sb_.data_block_size_,
+                           md->data_sm_->get_nr_blocks(),
+-                          optional<block_address>());
++                          boost::optional<block_address>());
+ 
+       {
+               mapping_tree_detail::damage_visitor::ptr 
md_policy(mapping_damage_policy(repair));
+-- 
+2.0.2
+

diff --git 
a/sys-block/thin-provisioning-tools/files/thin-provisioning-tools-0.3.2-strerror_r-returns-int.patch
 
b/sys-block/thin-provisioning-tools/files/thin-provisioning-tools-0.3.2-strerror_r-returns-int.patch
new file mode 100644
index 0000000..2f42acc
--- /dev/null
+++ 
b/sys-block/thin-provisioning-tools/files/thin-provisioning-tools-0.3.2-strerror_r-returns-int.patch
@@ -0,0 +1,33 @@
+diff -Naur thin-provisioning-tools-0.3.2.orig/caching/cache_check.cc 
thin-provisioning-tools-0.3.2/caching/cache_check.cc
+--- thin-provisioning-tools-0.3.2.orig/caching/cache_check.cc  2014-04-02 
08:43:16.000000000 -0400
++++ thin-provisioning-tools-0.3.2/caching/cache_check.cc       2015-07-19 
22:42:11.606851760 -0400
+@@ -201,10 +201,10 @@
+               int r = ::stat(path.c_str(), &info);
+               if (r) {
+                       ostringstream msg;
+-                      char buffer[128], *ptr;
++                      char buffer[128];
+ 
+-                      ptr = ::strerror_r(errno, buffer, sizeof(buffer));
+-                      msg << path << ": " << ptr;
++                      ::strerror_r(errno, buffer, sizeof(buffer));
++                      msg << path << ": " << buffer;
+                       throw runtime_error(msg.str());
+               }
+ 
+diff -Naur thin-provisioning-tools-0.3.2.orig/persistent-data/block.tcc 
thin-provisioning-tools-0.3.2/persistent-data/block.tcc
+--- thin-provisioning-tools-0.3.2.orig/persistent-data/block.tcc       
2014-04-02 08:43:16.000000000 -0400
++++ thin-provisioning-tools-0.3.2/persistent-data/block.tcc    2015-07-19 
22:39:10.567860436 -0400
+@@ -45,10 +45,10 @@
+       // to exception.h
+       void syscall_failed(char const *call) {
+               char buffer[128];
+-              char *msg = strerror_r(errno, buffer, sizeof(buffer));
++              strerror_r(errno, buffer, sizeof(buffer));
+ 
+               ostringstream out;
+-              out << "syscall '" << call << "' failed: " << msg;
++              out << "syscall '" << call << "' failed: " << buffer;
+               throw runtime_error(out.str());
+       }
+ 

diff --git a/sys-block/thin-provisioning-tools/metadata.xml 
b/sys-block/thin-provisioning-tools/metadata.xml
new file mode 100644
index 0000000..659c8f5
--- /dev/null
+++ b/sys-block/thin-provisioning-tools/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <herd>base-system</herd>
+       <maintainer>
+               <email>[email protected]</email>
+               <name>Robin H. Johnson</name>
+       </maintainer>
+       <longdescription lang="en">
+A suite of tools for thin provisioning on Linux.
+</longdescription>
+       <upstream>
+               <remote-id 
type="github">jthornber/thin-provisioning-tools</remote-id>
+       </upstream>
+</pkgmetadata>

diff --git 
a/sys-block/thin-provisioning-tools/thin-provisioning-tools-0.3.2-r99.ebuild 
b/sys-block/thin-provisioning-tools/thin-provisioning-tools-0.3.2-r99.ebuild
new file mode 100644
index 0000000..4d2fae6
--- /dev/null
+++ b/sys-block/thin-provisioning-tools/thin-provisioning-tools-0.3.2-r99.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: 
/var/cvsroot/gentoo-x86/sys-block/thin-provisioning-tools/thin-provisioning-tools-0.3.2-r1.ebuild,v
 1.9 2015/05/29 05:25:36 jmorgan Exp $
+
+EAPI=5
+inherit autotools eutils
+
+DESCRIPTION="A suite of tools for thin provisioning on Linux"
+HOMEPAGE="http://github.com/jthornber/thin-provisioning-tools";
+EXT=.tar.gz
+BASE_A=${P}${EXT}
+SRC_URI="http://github.com/jthornber/${PN}/archive/v${PV}${EXT} -> ${BASE_A}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 arm ~mips ppc x86"
+IUSE="test"
+
+RDEPEND="dev-libs/expat"
+# || ( ) is a non-future proof workaround for Portage unefficiency wrt #477050
+DEPEND="${RDEPEND}
+       test? (
+               || ( dev-lang/ruby:2.9 dev-lang/ruby:2.8 dev-lang/ruby:2.7 
dev-lang/ruby:2.6 dev-lang/ruby:2.5 dev-lang/ruby:2.4 dev-lang/ruby:2.3 
dev-lang/ruby:2.2 dev-lang/ruby:2.1 dev-lang/ruby:2.0 dev-lang/ruby:1.9 
dev-lang/ruby:1.8 )
+               dev-cpp/gmock
+               dev-util/cucumber
+               dev-util/aruba
+               )
+       dev-libs/boost"
+
+src_prepare() {
+       epatch 
"${FILESDIR}"/${P}-Remove-ambiguity-between-boost-uint64_t-and-uint64_t.patch
+       epatch "${FILESDIR}"/${P}-strerror_r-returns-int.patch
+       epatch_user
+       eautoreconf
+}
+
+src_configure() {
+       econf \
+               --prefix="${EPREFIX}"/ \
+               --bindir="${EPREFIX}"/sbin \
+               --with-optimisation='' \
+               $(use_enable test testing)
+}
+
+src_install() {
+       emake install DESTDIR="${D}" MANDIR=/usr/share/man
+       dodoc README.md TODO.org
+}
+
+src_test() {
+       emake unit-test
+}

Reply via email to