summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Levine <plevine457@gmail.com>2017-05-16 00:17:10 -0400
committerPatrice Clement <monsieurp@gentoo.org>2017-05-25 22:54:49 +0200
commit449a25488af2de2cda045d3073bb64d0deec5f05 (patch)
tree59becb1fba6cefa72a501472493f5847155c2bfc /dev-util/open-vcdiff
parentmail-filter/libdkim: fix building with GCC-6. (diff)
downloadgentoo-449a25488af2de2cda045d3073bb64d0deec5f05.tar.gz
gentoo-449a25488af2de2cda045d3073bb64d0deec5f05.tar.bz2
gentoo-449a25488af2de2cda045d3073bb64d0deec5f05.zip
dev-util/open-vcdiff: fix building with GCC-6.
Gentoo-Bug: https://bugs.gentoo.org/594334 Package-Manager: Portage-2.3.5, Repoman-2.3.2 Closes: https://github.com/gentoo/gentoo/pull/4639
Diffstat (limited to 'dev-util/open-vcdiff')
-rw-r--r--dev-util/open-vcdiff/files/open-vcdiff-0.8.4-gcc6.patch223
-rw-r--r--dev-util/open-vcdiff/open-vcdiff-0.8.4-r1.ebuild24
-rw-r--r--dev-util/open-vcdiff/open-vcdiff-0.8.4.ebuild6
3 files changed, 252 insertions, 1 deletions
diff --git a/dev-util/open-vcdiff/files/open-vcdiff-0.8.4-gcc6.patch b/dev-util/open-vcdiff/files/open-vcdiff-0.8.4-gcc6.patch
new file mode 100644
index 000000000000..fdba3faa78b2
--- /dev/null
+++ b/dev-util/open-vcdiff/files/open-vcdiff-0.8.4-gcc6.patch
@@ -0,0 +1,223 @@
+--- a/src/vcdecoder_test.cc
++++ b/src/vcdecoder_test.cc
+@@ -23,7 +23,7 @@
+
+ namespace open_vcdiff {
+
+-const char VCDiffDecoderTest::kStandardFileHeader[] = {
++const uint8_t VCDiffDecoderTest::kStandardFileHeader[] = {
+ 0xD6, // 'V' | 0x80
+ 0xC3, // 'C' | 0x80
+ 0xC4, // 'D' | 0x80
+@@ -31,7 +31,7 @@
+ 0x00 // Hdr_Indicator: no custom code table, no compression
+ };
+
+-const char VCDiffDecoderTest::kInterleavedFileHeader[] = {
++const uint8_t VCDiffDecoderTest::kInterleavedFileHeader[] = {
+ 0xD6, // 'V' | 0x80
+ 0xC3, // 'C' | 0x80
+ 0xC4, // 'D' | 0x80
+@@ -61,21 +61,22 @@
+ }
+
+ void VCDiffDecoderTest::UseStandardFileHeader() {
+- delta_file_header_.assign(kStandardFileHeader,
++ delta_file_header_.assign(reinterpret_cast<const char *>(kStandardFileHeader),
+ sizeof(kStandardFileHeader));
+ }
+
+ void VCDiffDecoderTest::UseInterleavedFileHeader() {
+- delta_file_header_.assign(kInterleavedFileHeader,
+- sizeof(kInterleavedFileHeader));
++ delta_file_header_.assign(
++ reinterpret_cast<const char *>(kInterleavedFileHeader),
++ sizeof(kInterleavedFileHeader));
+ }
+
+ void VCDiffDecoderTest::InitializeDeltaFile() {
+ delta_file_ = delta_file_header_ + delta_window_header_ + delta_window_body_;
+ }
+
+-char VCDiffDecoderTest::GetByteFromStringLength(const char* s,
+- int which_byte) {
++uint8_t VCDiffDecoderTest::GetByteFromStringLength(const char* s,
++ int which_byte) {
+ char varint_buf[VarintBE<int32_t>::kMaxBytes];
+ VarintBE<int32_t>::Encode(static_cast<int32_t>(strlen(s)), varint_buf);
+ return varint_buf[which_byte];
+@@ -101,10 +102,10 @@
+ // (0x7FFFFFFF) at the given offset in the delta window.
+ void VCDiffDecoderTest::WriteMaxVarintAtOffset(int offset,
+ int bytes_to_replace) {
+- static const char kMaxVarint[] = { 0x87, 0xFF, 0xFF, 0xFF, 0x7F };
++ static const uint8_t kMaxVarint[] = { 0x87, 0xFF, 0xFF, 0xFF, 0x7F };
+ delta_file_.replace(delta_file_header_.size() + offset,
+ bytes_to_replace,
+- kMaxVarint,
++ reinterpret_cast<const char*>(kMaxVarint),
+ sizeof(kMaxVarint));
+ }
+
+@@ -112,10 +113,10 @@
+ // in the delta window.
+ void VCDiffDecoderTest::WriteNegativeVarintAtOffset(int offset,
+ int bytes_to_replace) {
+- static const char kNegativeVarint[] = { 0x88, 0x80, 0x80, 0x80, 0x00 };
++ static const uint8_t kNegativeVarint[] = { 0x88, 0x80, 0x80, 0x80, 0x00 };
+ delta_file_.replace(delta_file_header_.size() + offset,
+ bytes_to_replace,
+- kNegativeVarint,
++ reinterpret_cast<const char*>(kNegativeVarint),
+ sizeof(kNegativeVarint));
+ }
+
+@@ -123,18 +124,18 @@
+ // at the given offset in the delta window.
+ void VCDiffDecoderTest::WriteInvalidVarintAtOffset(int offset,
+ int bytes_to_replace) {
+- static const char kInvalidVarint[] = { 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F };
++ static const uint8_t kInvalidVarint[] = { 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F };
+ delta_file_.replace(delta_file_header_.size() + offset,
+ bytes_to_replace,
+- kInvalidVarint,
++ reinterpret_cast<const char*>(kInvalidVarint),
+ sizeof(kInvalidVarint));
+ }
+
+ bool VCDiffDecoderTest::FuzzOneByteInDeltaFile() {
+ static const struct Fuzzer {
+- char _and;
+- char _or;
+- char _xor;
++ uint8_t _and;
++ uint8_t _or;
++ uint8_t _xor;
+ } fuzzers[] = {
+ { 0xff, 0x80, 0x00 },
+ { 0xff, 0xff, 0x00 },
+@@ -162,7 +163,7 @@
+ return false;
+ }
+
+-const char VCDiffStandardDecoderTest::kWindowHeader[] = {
++const uint8_t VCDiffStandardDecoderTest::kWindowHeader[] = {
+ VCD_SOURCE, // Win_Indicator: take source from dictionary
+ FirstByteOfStringLength(kDictionary), // Source segment size
+ SecondByteOfStringLength(kDictionary),
+@@ -176,7 +177,7 @@
+ 0x03 // length of addresses for COPYs
+ };
+
+-const char VCDiffStandardDecoderTest::kWindowBody[] = {
++const uint8_t VCDiffStandardDecoderTest::kWindowBody[] = {
+ // Data for ADDs: 1st section (length 61)
+ ' ', 'I', ' ', 'h', 'a', 'v', 'e', ' ', 's', 'a', 'i', 'd', ' ',
+ 'i', 't', ' ', 't', 'w', 'i', 'c', 'e', ':', '\n',
+@@ -216,11 +217,13 @@
+
+ VCDiffStandardDecoderTest::VCDiffStandardDecoderTest() {
+ UseStandardFileHeader();
+- delta_window_header_.assign(kWindowHeader, sizeof(kWindowHeader));
+- delta_window_body_.assign(kWindowBody, sizeof(kWindowBody));
++ delta_window_header_.assign(reinterpret_cast<const char *>(kWindowHeader),
++ sizeof(kWindowHeader));
++ delta_window_body_.assign(reinterpret_cast<const char *>(kWindowBody),
++ sizeof(kWindowBody));
+ }
+
+-const char VCDiffInterleavedDecoderTest::kWindowHeader[] = {
++const uint8_t VCDiffInterleavedDecoderTest::kWindowHeader[] = {
+ VCD_SOURCE, // Win_Indicator: take source from dictionary
+ FirstByteOfStringLength(kDictionary), // Source segment size
+ SecondByteOfStringLength(kDictionary),
+@@ -234,7 +237,7 @@
+ 0x00 // length of addresses for COPYs (unused)
+ };
+
+-const char VCDiffInterleavedDecoderTest::kWindowBody[] = {
++const uint8_t VCDiffInterleavedDecoderTest::kWindowBody[] = {
+ 0x13, // VCD_COPY mode VCD_SELF, size 0
+ 0x1C, // Size of COPY (28)
+ 0x00, // Address of COPY: Start of dictionary
+@@ -272,8 +275,10 @@
+
+ VCDiffInterleavedDecoderTest::VCDiffInterleavedDecoderTest() {
+ UseInterleavedFileHeader();
+- delta_window_header_.assign(kWindowHeader, sizeof(kWindowHeader));
+- delta_window_body_.assign(kWindowBody, sizeof(kWindowBody));
++ delta_window_header_.assign(reinterpret_cast<const char *>(kWindowHeader),
++ sizeof(kWindowHeader));
++ delta_window_body_.assign(reinterpret_cast<const char *>(kWindowBody),
++ sizeof(kWindowBody));
+ }
+
+ } // namespace open_vcdiff
+--- a/src/vcdecoder_test.h
++++ b/src/vcdecoder_test.h
+@@ -16,6 +16,7 @@
+ #define OPEN_VCDIFF_VCDECODER_TEST_H_
+
+ #include "google/vcdecoder.h"
++#include <stdint.h> // utf8_t
+ #include <string>
+ #include "checksum.h"
+ #include "testing.h"
+@@ -80,7 +81,7 @@
+ // Assuming the length of the given string can be expressed as a VarintBE
+ // of length N, this function returns the byte at position which_byte, where
+ // 0 <= which_byte < N.
+- static char GetByteFromStringLength(const char* s, int which_byte);
++ static uint8_t GetByteFromStringLength(const char* s, int which_byte);
+
+ // Assuming the length of the given string can be expressed as a one-byte
+ // VarintBE, this function returns that byte value.
+@@ -90,13 +91,13 @@
+
+ // Assuming the length of the given string can be expressed as a two-byte
+ // VarintBE, this function returns the first byte of its representation.
+- static char FirstByteOfStringLength(const char* s) {
++ static uint8_t FirstByteOfStringLength(const char* s) {
+ return GetByteFromStringLength(s, 0);
+ }
+
+ // Assuming the length of the given string can be expressed as a two-byte
+ // VarintBE, this function returns the second byte of its representation.
+- static char SecondByteOfStringLength(const char* s) {
++ static uint8_t SecondByteOfStringLength(const char* s) {
+ return GetByteFromStringLength(s, 1);
+ }
+
+@@ -124,8 +125,8 @@
+ private:
+ // These values should only be accessed via UseStandardFileHeader() and
+ // UseInterleavedFileHeader().
+- static const char kStandardFileHeader[];
+- static const char kInterleavedFileHeader[];
++ static const uint8_t kStandardFileHeader[];
++ static const uint8_t kInterleavedFileHeader[];
+
+ // These two counters are used by FuzzOneByteInDeltaFile() to iterate through
+ // different ways to corrupt the delta file.
+@@ -141,8 +142,8 @@
+ virtual ~VCDiffStandardDecoderTest() {}
+
+ private:
+- static const char kWindowHeader[];
+- static const char kWindowBody[];
++ static const uint8_t kWindowHeader[];
++ static const uint8_t kWindowBody[];
+ };
+
+ class VCDiffInterleavedDecoderTest : public VCDiffDecoderTest {
+@@ -151,8 +152,8 @@
+ virtual ~VCDiffInterleavedDecoderTest() {}
+
+ private:
+- static const char kWindowHeader[];
+- static const char kWindowBody[];
++ static const uint8_t kWindowHeader[];
++ static const uint8_t kWindowBody[];
+ };
+
+ } // namespace open_vcdiff
diff --git a/dev-util/open-vcdiff/open-vcdiff-0.8.4-r1.ebuild b/dev-util/open-vcdiff/open-vcdiff-0.8.4-r1.ebuild
new file mode 100644
index 000000000000..18324677305e
--- /dev/null
+++ b/dev-util/open-vcdiff/open-vcdiff-0.8.4-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="An encoder/decoder for the VCDIFF (RFC3284) format"
+HOMEPAGE="https://github.com/google/open-vcdiff"
+SRC_URI="https://dev.gentoo.org/~floppym/dist/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0/0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+PATCHES=( "${FILESDIR}"/${P}-gcc6.patch )
+
+src_configure() {
+ econf --disable-static
+}
+
+src_install() {
+ default
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/dev-util/open-vcdiff/open-vcdiff-0.8.4.ebuild b/dev-util/open-vcdiff/open-vcdiff-0.8.4.ebuild
index d4cb3e85905f..2cf96cbd62d7 100644
--- a/dev-util/open-vcdiff/open-vcdiff-0.8.4.ebuild
+++ b/dev-util/open-vcdiff/open-vcdiff-0.8.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -14,6 +14,10 @@ SLOT="0/0"
KEYWORDS="~amd64 ~x86"
IUSE=""
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-gcc6.patch
+}
+
src_configure() {
econf --disable-static
}