Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-vcs/monotone/files/, dev-vcs/monotone/
Date: Sun, 15 Oct 2017 12:36:31
Message-Id: 1508070954.899abcea31b093eb9429a59df1e0f8302b682cc7.mgorny@gentoo
1 commit: 899abcea31b093eb9429a59df1e0f8302b682cc7
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Sun Oct 15 11:14:04 2017 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Sun Oct 15 12:35:54 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=899abcea
7
8 dev-vcs/monotone: Move patches to a dist tarball
9
10 Closes: https://bugs.gentoo.org/620572
11
12 dev-vcs/monotone/Manifest | 1 +
13 .../files/monotone-1.0-bash-completion-tests.patch | 18 -
14 .../monotone/files/monotone-1.0-boost-1.53.patch | 92 ---
15 .../files/monotone-1.0-botan-1.10-v2.patch | 644 ---------------------
16 dev-vcs/monotone/files/monotone-1.0-gcc6.patch | 64 --
17 .../monotone-1.0-glibc-2.14-file-handle.patch | 166 ------
18 dev-vcs/monotone/files/monotone-1.0-pcre3.patch | 26 -
19 .../monotone/files/monotone-1.0-texinfo-5.1.patch | 625 --------------------
20 dev-vcs/monotone/monotone-1.0-r4.ebuild | 17 +-
21 9 files changed, 10 insertions(+), 1643 deletions(-)
22
23 diff --git a/dev-vcs/monotone/Manifest b/dev-vcs/monotone/Manifest
24 index 8d194b394ad..84265efeea8 100644
25 --- a/dev-vcs/monotone/Manifest
26 +++ b/dev-vcs/monotone/Manifest
27 @@ -1 +1,2 @@
28 +DIST monotone-1.0-gentoo-patchset.tar.bz2 14029 SHA256 25f42c6c81ad05cbee51e98a0c890d01df768aa5a23c66bd6d8bdb41d5eca018 SHA512 70c5c885afca10ac3ab1c8ba855302333d2d137697f8f2c0cefdf0c57c466e0b03535ebd5cf936df273004646aeaa4bc55bd4b9f006285f8a825b8a665c77e60 WHIRLPOOL 89ece7e2c13480280621fb02ac03583a58bf8dc6509bc35f5f020a0a909244d018081cbced786e4d79c1046622df4c13ead1cb7478c07d1383e61348aeccf783
29 DIST monotone-1.0.tar.bz2 3588074 SHA256 5c530bc4652b2c08b5291659f0c130618a14780f075f981e947952dcaefc31dc SHA512 85f5a015ee3f7a924e16b7f20974cadd18bd6aaf2815eca0da42689373fc654c661051ce6981ec473f9eac7f9796cfed3431f0cfe16d1cbe0b0b625302ef3e77 WHIRLPOOL c0379f4e37fc6dc8f47caf4b548f7ef124cdf3f7a87fccb3a4cc6d160bcff4092a4d9636d71558120c9e28ef072bcf5dd23d6e116ad49abb6c99a9886d1747df
30
31 diff --git a/dev-vcs/monotone/files/monotone-1.0-bash-completion-tests.patch b/dev-vcs/monotone/files/monotone-1.0-bash-completion-tests.patch
32 deleted file mode 100644
33 index 5b877d4d31c..00000000000
34 --- a/dev-vcs/monotone/files/monotone-1.0-bash-completion-tests.patch
35 +++ /dev/null
36 @@ -1,18 +0,0 @@
37 -https://code.monotone.ca/p/monotone/issues/180/
38 ---- test/extra/bash_completion/bashrc 2011-09-07 09:00:12 +0000
39 -+++ test/extra/bash_completion/bashrc 2011-09-07 12:14:59 +0000
40 -@@ -18,6 +18,13 @@
41 - . /etc/bash_completion
42 - elif [ -f /usr/local/etc/bash_completion ]; then
43 - . /usr/local/etc/bash_completion
44 -+ elif [ -f /usr/share/bash-completion/.pre -a \
45 -+ -f /usr/share/bash-completion/base ]; then
46 -+ # In Gentoo /etc/profile.d/bash-completion.sh sources required
47 -+ # functions only if enabled with `eselect bashcomp`. We source
48 -+ # required definitions manually.
49 -+ source /usr/share/bash-completion/.pre
50 -+ source /usr/share/bash-completion/base
51 - else
52 - echo No bash completion package present.
53 - exit
54 -
55
56 diff --git a/dev-vcs/monotone/files/monotone-1.0-boost-1.53.patch b/dev-vcs/monotone/files/monotone-1.0-boost-1.53.patch
57 deleted file mode 100644
58 index e72a57e4cde..00000000000
59 --- a/dev-vcs/monotone/files/monotone-1.0-boost-1.53.patch
60 +++ /dev/null
61 @@ -1,92 +0,0 @@
62 -============================================================
63 ---- src/database.cc 87efeeff2d3263ba98af684a4022f1897434ed2d
64 -+++ src/database.cc 39ab2644b936e09a536b99ebd28b93f6e0d7c162
65 -@@ -92,7 +92,7 @@ using boost::shared_ptr;
66 - using std::accumulate;
67 -
68 - using boost::shared_ptr;
69 --using boost::shared_dynamic_cast;
70 -+using boost::dynamic_pointer_cast;
71 - using boost::lexical_cast;
72 - using boost::get;
73 - using boost::tuple;
74 -@@ -3430,7 +3430,7 @@ database::encrypt_rsa(key_id const & pub
75 -
76 - shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));
77 - shared_ptr<RSA_PublicKey> pub_key
78 -- = shared_dynamic_cast<RSA_PublicKey>(x509_key);
79 -+ = dynamic_pointer_cast<RSA_PublicKey>(x509_key);
80 - if (!pub_key)
81 - throw recoverable_failure(origin::system,
82 - "Failed to get RSA encrypting key");
83 -@@ -3481,7 +3481,7 @@ database::check_signature(key_id const &
84 - L(FL("building verifier for %d-byte pub key") % pub_block.size());
85 - shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));
86 - shared_ptr<RSA_PublicKey> pub_key
87 -- = boost::shared_dynamic_cast<RSA_PublicKey>(x509_key);
88 -+ = boost::dynamic_pointer_cast<RSA_PublicKey>(x509_key);
89 -
90 - E(pub_key, id.inner().made_from,
91 - F("failed to get RSA verifying key for %s") % id);
92 -============================================================
93 ---- src/key_store.cc b7859345f7c665914d16357409bdff24a48b7996
94 -+++ src/key_store.cc 1ca13b7ee527bc2872d9fc325cf5ef327ca053c2
95 -@@ -43,7 +43,7 @@ using boost::shared_ptr;
96 -
97 - using boost::scoped_ptr;
98 - using boost::shared_ptr;
99 --using boost::shared_dynamic_cast;
100 -+using boost::dynamic_pointer_cast;
101 -
102 - using Botan::RSA_PrivateKey;
103 - using Botan::RSA_PublicKey;
104 -@@ -641,7 +641,7 @@ key_store_state::decrypt_private_key(key
105 - I(pkcs8_key);
106 -
107 - shared_ptr<RSA_PrivateKey> priv_key;
108 -- priv_key = shared_dynamic_cast<RSA_PrivateKey>(pkcs8_key);
109 -+ priv_key = dynamic_pointer_cast<RSA_PrivateKey>(pkcs8_key);
110 - E(priv_key, origin::no_fault,
111 - F("failed to extract RSA private key from PKCS#8 keypair"));
112 -
113 -@@ -879,7 +879,8 @@ key_store::make_signature(database & db,
114 - L(FL("make_signature: building %d-byte pub key") % pub_block.size());
115 - shared_ptr<X509_PublicKey> x509_key =
116 - shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));
117 -- shared_ptr<RSA_PublicKey> pub_key = shared_dynamic_cast<RSA_PublicKey>(x509_key);
118 -+ shared_ptr<RSA_PublicKey> pub_key =
119 -+ dynamic_pointer_cast<RSA_PublicKey>(x509_key);
120 -
121 - if (!pub_key)
122 - throw recoverable_failure(origin::system,
123 -@@ -1092,7 +1093,7 @@ key_store_state::migrate_old_key_pair
124 - continue;
125 - }
126 -
127 -- priv_key = shared_dynamic_cast<RSA_PrivateKey>(pkcs8_key);
128 -+ priv_key = dynamic_pointer_cast<RSA_PrivateKey>(pkcs8_key);
129 - I(priv_key);
130 -
131 - // now we can write out the new key
132 -============================================================
133 ---- src/ssh_agent.cc 4a0dcab873559e934e41c5f220b5434d35600d9b
134 -+++ src/ssh_agent.cc 6313ee3cdfca4112ba3957dc4a5f318472289dfa
135 -@@ -32,7 +32,7 @@ using boost::shared_ptr;
136 - using std::vector;
137 -
138 - using boost::shared_ptr;
139 --using boost::shared_dynamic_cast;
140 -+using boost::dynamic_pointer_cast;
141 -
142 - using Botan::RSA_PublicKey;
143 - using Botan::RSA_PrivateKey;
144 -@@ -391,7 +391,8 @@ ssh_agent::has_key(const keypair & key)
145 - L(FL("has_key: building %d-byte pub key") % pub_block.size());
146 - shared_ptr<X509_PublicKey> x509_key =
147 - shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));
148 -- shared_ptr<RSA_PublicKey> pub_key = shared_dynamic_cast<RSA_PublicKey>(x509_key);
149 -+ shared_ptr<RSA_PublicKey> pub_key =
150 -+ dynamic_pointer_cast<RSA_PublicKey>(x509_key);
151 -
152 - if (!pub_key)
153 - throw recoverable_failure(origin::system,
154
155 diff --git a/dev-vcs/monotone/files/monotone-1.0-botan-1.10-v2.patch b/dev-vcs/monotone/files/monotone-1.0-botan-1.10-v2.patch
156 deleted file mode 100644
157 index a86bac555b1..00000000000
158 --- a/dev-vcs/monotone/files/monotone-1.0-botan-1.10-v2.patch
159 +++ /dev/null
160 @@ -1,644 +0,0 @@
161 -Make monotone work with botan 1.10.
162 -
163 -Patch generated using the following command:
164 -mtn diff -r 972ee5c3eab3fb5ba0b80684193293d18438a9d0 \
165 - -r f4feb3fdc68e4f955909450b2dcb3ff9312dbc9e
166 -
167 -Authors: Martin von Gagern, Markus Wanner
168 -
169 -References:
170 -https://bugs.gentoo.org/380257
171 -https://code.monotone.ca/p/monotone/issues/182/
172 -https://code.monotone.ca/p/monotone/source/commit/f4feb3fd
173 -
174 -============================================================
175 ---- src/database.cc 4c259f963c440fc95564dfec99b2f832f0bad643
176 -+++ src/database.cc 87efeeff2d3263ba98af684a4022f1897434ed2d
177 -@@ -3425,9 +3425,8 @@ database::encrypt_rsa(key_id const & pub
178 - rsa_pub_key pub;
179 - get_key(pub_id, pub);
180 -
181 -- SecureVector<Botan::byte> pub_block;
182 -- pub_block.set(reinterpret_cast<Botan::byte const *>(pub().data()),
183 -- pub().size());
184 -+ SecureVector<Botan::byte> pub_block
185 -+ (reinterpret_cast<Botan::byte const *>(pub().data()), pub().size());
186 -
187 - shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));
188 - shared_ptr<RSA_PublicKey> pub_key
189 -@@ -3471,14 +3470,13 @@ database::check_signature(key_id const &
190 - else
191 - {
192 - rsa_pub_key pub;
193 -- SecureVector<Botan::byte> pub_block;
194 -
195 - if (!public_key_exists(id))
196 - return cert_unknown;
197 -
198 - get_key(id, pub);
199 -- pub_block.set(reinterpret_cast<Botan::byte const *>(pub().data()),
200 -- pub().size());
201 -+ SecureVector<Botan::byte> pub_block
202 -+ (reinterpret_cast<Botan::byte const *>(pub().data()), pub().size());
203 -
204 - L(FL("building verifier for %d-byte pub key") % pub_block.size());
205 - shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));
206 -============================================================
207 ---- src/gzip.cc e7c19bee910e3d421fd073933810ec52092b1d9b
208 -+++ src/gzip.cc 9da41f6820cdf39707b22c716e3682e0fa0fd745
209 -@@ -110,7 +110,7 @@ Gzip_Compression::Gzip_Compression(u32bi
210 - if(deflateInit2(&(zlib->stream), level, Z_DEFLATED, -15, 8, Z_DEFAULT_STRATEGY) != Z_OK)
211 - {
212 - delete zlib; zlib = 0;
213 -- throw Exception("Gzip_Compression: Memory allocation error");
214 -+ throw Memory_Exhaustion();
215 - }
216 - }
217 -
218 -@@ -137,7 +137,7 @@ void Gzip_Compression::start_msg()
219 - /*************************************************
220 - * Compress Input with Gzip *
221 - *************************************************/
222 --void Gzip_Compression::write(const byte input[], u32bit length)
223 -+void Gzip_Compression::write(const byte input[], filter_length_t length)
224 - {
225 -
226 - count += length;
227 -@@ -152,7 +152,7 @@ void Gzip_Compression::write(const byte
228 - zlib->stream.avail_out = buffer.size();
229 - int rc = deflate(&(zlib->stream), Z_NO_FLUSH);
230 - if (rc != Z_OK && rc != Z_STREAM_END)
231 -- throw Exception("Internal error in Gzip_Compression deflate.");
232 -+ throw Invalid_State("Internal error in Gzip_Compression deflate.");
233 - send(buffer.begin(), buffer.size() - zlib->stream.avail_out);
234 - }
235 - }
236 -@@ -172,7 +172,7 @@ void Gzip_Compression::end_msg()
237 - zlib->stream.avail_out = buffer.size();
238 - rc = deflate(&(zlib->stream), Z_FINISH);
239 - if (rc != Z_OK && rc != Z_STREAM_END)
240 -- throw Exception("Internal error in Gzip_Compression finishing deflate.");
241 -+ throw Invalid_State("Internal error in Gzip_Compression finishing deflate.");
242 - send(buffer.begin(), buffer.size() - zlib->stream.avail_out);
243 - }
244 -
245 -@@ -228,7 +228,7 @@ Gzip_Decompression::Gzip_Decompression()
246 - no_writes(true), pipe(new Hash_Filter("CRC32")), footer(0)
247 - {
248 - if (DEFAULT_BUFFERSIZE < sizeof(GZIP::GZIP_HEADER))
249 -- throw Exception("DEFAULT_BUFFERSIZE is too small");
250 -+ throw Decoding_Error("DEFAULT_BUFFERSIZE is too small");
251 -
252 - zlib = new Zlib_Stream;
253 -
254 -@@ -237,7 +237,7 @@ Gzip_Decompression::Gzip_Decompression()
255 - if(inflateInit2(&(zlib->stream), -15) != Z_OK)
256 - {
257 - delete zlib; zlib = 0;
258 -- throw Exception("Gzip_Decompression: Memory allocation error");
259 -+ throw Memory_Exhaustion();
260 - }
261 - }
262 -
263 -@@ -256,7 +256,7 @@ void Gzip_Decompression::start_msg()
264 - void Gzip_Decompression::start_msg()
265 - {
266 - if (!no_writes)
267 -- throw Exception("Gzip_Decompression: start_msg after already writing");
268 -+ throw Decoding_Error("Gzip_Decompression: start_msg after already writing");
269 -
270 - pipe.start_msg();
271 - datacount = 0;
272 -@@ -267,7 +267,7 @@ void Gzip_Decompression::start_msg()
273 - /*************************************************
274 - * Decompress Input with Gzip *
275 - *************************************************/
276 --void Gzip_Decompression::write(const byte input[], u32bit length)
277 -+void Gzip_Decompression::write(const byte input[], filter_length_t length)
278 - {
279 - if(length) no_writes = false;
280 -
281 -@@ -277,15 +277,16 @@ void Gzip_Decompression::write(const byt
282 - u32bit eat_len = eat_footer(input, length);
283 - input += eat_len;
284 - length -= eat_len;
285 -- if (length == 0)
286 -- return;
287 - }
288 -
289 -+ if (length == 0)
290 -+ return;
291 -+
292 - // Check the gzip header
293 - if (pos < sizeof(GZIP::GZIP_HEADER))
294 - {
295 -- u32bit len = std::min((u32bit)sizeof(GZIP::GZIP_HEADER)-pos, length);
296 -- u32bit cmplen = len;
297 -+ filter_length_t len = std::min((filter_length_t)sizeof(GZIP::GZIP_HEADER)-pos, length);
298 -+ filter_length_t cmplen = len;
299 - // The last byte is the OS flag - we don't care about that
300 - if (pos + len - 1 >= GZIP::HEADER_POS_OS)
301 - cmplen--;
302 -@@ -317,8 +318,8 @@ void Gzip_Decompression::write(const byt
303 - if(rc == Z_NEED_DICT)
304 - throw Decoding_Error("Gzip_Decompression: Need preset dictionary");
305 - if(rc == Z_MEM_ERROR)
306 -- throw Exception("Gzip_Decompression: Memory allocation error");
307 -- throw Exception("Gzip_Decompression: Unknown decompress error");
308 -+ throw Memory_Exhaustion();
309 -+ throw Decoding_Error("Gzip_Decompression: Unknown decompress error");
310 - }
311 - send(buffer.begin(), buffer.size() - zlib->stream.avail_out);
312 - pipe.write(buffer.begin(), buffer.size() - zlib->stream.avail_out);
313 -@@ -346,8 +347,14 @@ u32bit Gzip_Decompression::eat_footer(co
314 - if (footer.size() >= GZIP::FOOTER_LENGTH)
315 - throw Decoding_Error("Gzip_Decompression: Data integrity error in footer");
316 -
317 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
318 -+ size_t eat_len = std::min(GZIP::FOOTER_LENGTH-footer.size(),
319 -+ static_cast<size_t>(length));
320 -+ footer += std::make_pair(input, eat_len);
321 -+#else
322 - u32bit eat_len = std::min(GZIP::FOOTER_LENGTH-footer.size(), length);
323 - footer.append(input, eat_len);
324 -+#endif
325 -
326 - if (footer.size() == GZIP::FOOTER_LENGTH)
327 - {
328 -@@ -364,7 +371,7 @@ void Gzip_Decompression::check_footer()
329 - void Gzip_Decompression::check_footer()
330 - {
331 - if (footer.size() != GZIP::FOOTER_LENGTH)
332 -- throw Exception("Gzip_Decompression: Error finalizing decompression");
333 -+ throw Decoding_Error("Gzip_Decompression: Error finalizing decompression");
334 -
335 - pipe.end_msg();
336 -
337 -@@ -377,7 +384,12 @@ void Gzip_Decompression::check_footer()
338 - for (int i = 0; i < 4; i++)
339 - buf[3-i] = tmpbuf[i];
340 -
341 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
342 -+ tmpbuf.resize(4);
343 -+ tmpbuf.copy(footer.begin(), 4);
344 -+#else
345 - tmpbuf.set(footer.begin(), 4);
346 -+#endif
347 - if (buf != tmpbuf)
348 - throw Decoding_Error("Gzip_Decompression: Data integrity error - CRC32 error");
349 -
350 -@@ -400,7 +412,7 @@ void Gzip_Decompression::end_msg()
351 - // read, clear() will reset no_writes
352 - if(no_writes) return;
353 -
354 -- throw Exception("Gzip_Decompression: didn't find footer");
355 -+ throw Decoding_Error("Gzip_Decompression: didn't find footer");
356 -
357 - }
358 -
359 -@@ -412,7 +424,11 @@ void Gzip_Decompression::clear()
360 - no_writes = true;
361 - inflateReset(&(zlib->stream));
362 -
363 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
364 -+ footer.clear();
365 -+#else
366 - footer.destroy();
367 -+#endif
368 - pos = 0;
369 - datacount = 0;
370 - }
371 -============================================================
372 ---- src/gzip.hh 649dfc0b250954f39c0f73870f8bec3f32f7fa43
373 -+++ src/gzip.hh aff9da63bb22366bccf69c2d75ee7790406d2455
374 -@@ -7,11 +7,18 @@
375 - #ifndef BOTAN_EXT_GZIP_H__
376 - #define BOTAN_EXT_GZIP_H__
377 -
378 -+#include <botan/version.h>
379 - #include <botan/filter.h>
380 - #include <botan/pipe.h>
381 -
382 - namespace Botan {
383 -
384 -+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,4)
385 -+// Only 1.9.4 and newer export the Memory_Exception. Give this gzip
386 -+// implementation something compatible to work with.
387 -+typedef std::bad_alloc Memory_Exhaustion;
388 -+#endif
389 -+
390 - namespace GZIP {
391 -
392 - /* A basic header - we only need to set the IDs and compression method */
393 -@@ -30,13 +37,19 @@ namespace GZIP {
394 -
395 - }
396 -
397 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
398 -+typedef size_t filter_length_t;
399 -+#else
400 -+typedef u32bit filter_length_t;
401 -+#endif
402 -+
403 - /*************************************************
404 - * Gzip Compression Filter *
405 - *************************************************/
406 - class Gzip_Compression : public Filter
407 - {
408 - public:
409 -- void write(const byte input[], u32bit length);
410 -+ void write(const byte input[], filter_length_t length);
411 - void start_msg();
412 - void end_msg();
413 - std::string name() const { return "Gzip_Compression"; }
414 -@@ -60,7 +73,7 @@ class Gzip_Decompression : public Filter
415 - class Gzip_Decompression : public Filter
416 - {
417 - public:
418 -- void write(const byte input[], u32bit length);
419 -+ void write(const byte input[], filter_length_t length);
420 - void start_msg();
421 - void end_msg();
422 - std::string name() const { return "Gzip_Decompression"; }
423 -============================================================
424 ---- src/key_packet.cc d1306df89dd684badac02c03744cd446381c07d3
425 -+++ src/key_packet.cc c97262d161b23c9640972188979669b3e95afe7b
426 -@@ -106,8 +106,8 @@ namespace
427 - void validate_public_key_data(string const & name, string const & keydata) const
428 - {
429 - string decoded = decode_base64_as<string>(keydata, origin::user);
430 -- Botan::SecureVector<Botan::byte> key_block;
431 -- key_block.set(reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
432 -+ Botan::SecureVector<Botan::byte> key_block
433 -+ (reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
434 - try
435 - {
436 - Botan::X509::load_key(key_block);
437 -============================================================
438 ---- src/key_store.cc 64c4c4bed1fadc26b51207b9f61343f9dd7d3c6e
439 -+++ src/key_store.cc b7859345f7c665914d16357409bdff24a48b7996
440 -@@ -572,13 +572,21 @@ key_store_state::decrypt_private_key(key
441 - try // with empty passphrase
442 - {
443 - Botan::DataSource_Memory ds(kp.priv());
444 --#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
445 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
446 -+ pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(), Dummy_UI()));
447 -+#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
448 - pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(), ""));
449 - #else
450 - pkcs8_key.reset(Botan::PKCS8::load_key(ds, ""));
451 - #endif
452 - }
453 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
454 -+ catch (Passphrase_Required & e)
455 -+#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,4)
456 -+ catch (Botan::Invalid_Argument & e)
457 -+#else
458 - catch (Botan::Exception & e)
459 -+#endif
460 - {
461 - L(FL("failed to load key with no passphrase: %s") % e.what());
462 -
463 -@@ -605,13 +613,18 @@ key_store_state::decrypt_private_key(key
464 - {
465 - Botan::DataSource_Memory ds(kp.priv());
466 - #if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
467 -- pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(), phrase()));
468 -+ pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(),
469 -+ phrase()));
470 - #else
471 - pkcs8_key.reset(Botan::PKCS8::load_key(ds, phrase()));
472 - #endif
473 - break;
474 - }
475 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,4)
476 -+ catch (Botan::Invalid_Argument)
477 -+#else
478 - catch (Botan::Exception & e)
479 -+#endif
480 - {
481 - cycles++;
482 - L(FL("decrypt_private_key: failure %d to load encrypted key: %s")
483 -@@ -822,10 +835,14 @@ key_store::decrypt_rsa(key_id const & id
484 - plaintext = string(reinterpret_cast<char const*>(plain.begin()),
485 - plain.size());
486 - }
487 -- catch (Botan::Exception & ex)
488 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,4)
489 -+ catch (std::exception & e)
490 -+#else
491 -+ catch (Botan::Exception & e)
492 -+#endif
493 - {
494 - E(false, ciphertext.made_from,
495 -- F("Botan error decrypting data: '%s'") % ex.what());
496 -+ F("Botan error decrypting data: '%s'") % e.what());
497 - }
498 - }
499 -
500 -@@ -856,9 +873,9 @@ key_store::make_signature(database & db,
501 - {
502 - if (agent.connected()) {
503 - //grab the monotone public key as an RSA_PublicKey
504 -- SecureVector<Botan::byte> pub_block;
505 -- pub_block.set(reinterpret_cast<Botan::byte const *>(key.pub().data()),
506 -- key.pub().size());
507 -+ SecureVector<Botan::byte> pub_block
508 -+ (reinterpret_cast<Botan::byte const *>(key.pub().data()),
509 -+ key.pub().size());
510 - L(FL("make_signature: building %d-byte pub key") % pub_block.size());
511 - shared_ptr<X509_PublicKey> x509_key =
512 - shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));
513 -@@ -1031,8 +1048,14 @@ key_store_state::migrate_old_key_pair
514 - for (;;)
515 - try
516 - {
517 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
518 -+ arc4_key.resize(phrase().size());
519 -+ arc4_key.copy(reinterpret_cast<Botan::byte const *>(phrase().data()),
520 -+ phrase().size());
521 -+#else
522 - arc4_key.set(reinterpret_cast<Botan::byte const *>(phrase().data()),
523 - phrase().size());
524 -+#endif
525 -
526 - Pipe arc4_decryptor(get_cipher("ARC4", arc4_key, Botan::DECRYPTION));
527 -
528 -@@ -1051,7 +1074,11 @@ key_store_state::migrate_old_key_pair
529 - #endif
530 - break;
531 - }
532 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,4)
533 -+ catch (Botan::Invalid_Argument & e)
534 -+#else
535 - catch (Botan::Exception & e)
536 -+#endif
537 - {
538 - L(FL("migrate_old_key_pair: failure %d to load old private key: %s")
539 - % cycles % e.what());
540 -============================================================
541 ---- src/monotone.cc a25ecdd170a601db798b63a60add7681609a34c4
542 -+++ src/monotone.cc 764bc9ca406b41d21efd552a0d810bc2849e0588
543 -@@ -156,27 +156,53 @@ cpp_main(int argc, char ** argv)
544 - E(linked_botan_version != BOTAN_VERSION_CODE_FOR(1,7,14), origin::system,
545 - F("monotone does not support Botan 1.7.14"));
546 -
547 --#if BOTAN_VERSION_CODE <= BOTAN_VERSION_CODE_FOR(1,7,6)
548 -+ // In Botan 1.9.9, the DataSink_Stream cannot be instantiated per
549 -+ // se. As 1.10.1 is already out, let's simply disable support for
550 -+ // that specific (testing) version of botan.
551 -+ E(linked_botan_version != BOTAN_VERSION_CODE_FOR(1,9,9), origin::system,
552 -+ F("monotone does not support Botan 1.9.9"));
553 -+
554 -+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,7,7)
555 -+ // motonote binary compiled against botan younger than 1.7.7
556 - E(linked_botan_version >= BOTAN_VERSION_CODE_FOR(1,6,3), origin::system,
557 - F("this monotone binary requires Botan 1.6.3 or newer"));
558 -- E(linked_botan_version <= BOTAN_VERSION_CODE_FOR(1,7,6), origin::system,
559 -- F("this monotone binary does not work with Botan newer than 1.7.6"));
560 --#elif BOTAN_VERSION_CODE <= BOTAN_VERSION_CODE_FOR(1,7,22)
561 -- E(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,7,6), origin::system,
562 -+ E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,7,7), origin::system,
563 -+ F("this monotone binary does not work with Botan 1.7.7 or newer"));
564 -+
565 -+#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,7,22)
566 -+ // motonote binary compiled against botan 1.7.7 - 1.7.21
567 -+ E(linked_botan_version >= BOTAN_VERSION_CODE_FOR(1,7,7), origin::system,
568 - F("this monotone binary requires Botan 1.7.7 or newer"));
569 -- // While compiling against 1.7.22 or newer is recommended, because
570 -- // it enables new features of Botan, the monotone binary compiled
571 -- // against Botan 1.7.21 and before should still work with newer Botan
572 -- // versions, including all of the stable branch 1.8.x.
573 -- E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), origin::system,
574 -- F("this monotone binary does not work with Botan 1.9.x"));
575 --#else
576 -- E(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,7,22), origin::system,
577 -+ // While compiling against 1.7.22 or newer is recommended, because it
578 -+ // enables new features of Botan, the monotone binary compiled against
579 -+ // Botan 1.7.21 and before should still work with newer Botan version,
580 -+ // including all of the stable branch 1.8.x, up to and including
581 -+ // 1.9.3.
582 -+ E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,4), origin::system,
583 -+ F("this monotone binary does not work with Botan 1.9.4 or newer"));
584 -+
585 -+#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,4)
586 -+ // motonote binary compiled against botan 1.7.22 - 1.9.3
587 -+ E(linked_botan_version >= BOTAN_VERSION_CODE_FOR(1,7,22), origin::system,
588 - F("this monotone binary requires Botan 1.7.22 or newer"));
589 -- E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), origin::system,
590 -- F("this monotone binary does not work with Botan 1.9.x"));
591 -+ E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,4), origin::system,
592 -+ F("this monotone binary does not work with Botan 1.9.4 or newer"));
593 -+
594 -+#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,11)
595 -+ // motonote binary compiled against botan 1.9.4 - 1.9.10
596 -+#pragma message ( "The resulting monotone binary won't be able to run with any stable release of botan." )
597 -+ E(linked_botan_version >= BOTAN_VERSION_CODE_FOR(1,9,4), origin::system,
598 -+ F("this monotone binary requires Botan 1.9.4 or newer"));
599 -+ E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,11), origin::system,
600 -+ F("this monotone binary does not work with Botan 1.9.11 or newer"));
601 -+
602 -+#else
603 -+ // motonote binary compiled against botan 1.9.11 and newer
604 -+ E(linked_botan_version >= BOTAN_VERSION_CODE_FOR(1,9,11), origin::system,
605 -+ F("this monotone binary requires Botan 1.9.11 or newer"));
606 - #endif
607 -
608 -+
609 - app_state app;
610 - try
611 - {
612 -============================================================
613 ---- src/packet.cc f61360ed2524fdf53411bd24d022a2a3c9e6e9c7
614 -+++ src/packet.cc 571ff6eae1d269a146da74f2730b70376957d3bb
615 -@@ -156,8 +156,8 @@ namespace
616 - void validate_public_key_data(string const & name, string const & keydata) const
617 - {
618 - string decoded = decode_base64_as<string>(keydata, origin::user);
619 -- Botan::SecureVector<Botan::byte> key_block;
620 -- key_block.set(reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
621 -+ Botan::SecureVector<Botan::byte> key_block
622 -+ (reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
623 - try
624 - {
625 - Botan::X509::load_key(key_block);
626 -@@ -175,7 +175,9 @@ namespace
627 - Botan::DataSource_Memory ds(decoded);
628 - try
629 - {
630 --#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
631 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
632 -+ Botan::PKCS8::load_key(ds, lazy_rng::get(), Dummy_UI());
633 -+#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
634 - Botan::PKCS8::load_key(ds, lazy_rng::get(), string());
635 - #else
636 - Botan::PKCS8::load_key(ds, string());
637 -@@ -189,7 +191,11 @@ namespace
638 - }
639 - // since we do not want to prompt for a password to decode it finally,
640 - // we ignore all other exceptions
641 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
642 -+ catch (Passphrase_Required) {}
643 -+#else
644 - catch (Botan::Invalid_Argument) {}
645 -+#endif
646 - }
647 - void validate_certname(string const & cn) const
648 - {
649 -@@ -460,8 +466,16 @@ read_packets(istream & in, packet_consum
650 - return count;
651 - }
652 -
653 -+// Dummy User_Interface implementation for Botan
654 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
655 -+std::string
656 -+Dummy_UI::get_passphrase(const std::string &, const std::string &,
657 -+ Botan::User_Interface::UI_Result&) const
658 -+{
659 -+ throw Passphrase_Required("Passphrase required");
660 -+}
661 -+#endif
662 -
663 --
664 - // Local Variables:
665 - // mode: C++
666 - // fill-column: 76
667 -============================================================
668 ---- src/packet.hh 0a224e6e92f244e2c3e9a5cdb935eb8613d7e85b
669 -+++ src/packet.hh 9c43d30145f0292d6ceda5e717e366fdead5a4d6
670 -@@ -10,6 +10,10 @@
671 - #ifndef __PACKET_HH__
672 - #define __PACKET_HH__
673 -
674 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
675 -+#include <botan/ui.h>
676 -+#endif
677 -+
678 - #include "vocab.hh"
679 -
680 - struct cert;
681 -@@ -84,8 +88,23 @@ size_t read_packets(std::istream & in, p
682 -
683 - size_t read_packets(std::istream & in, packet_consumer & cons);
684 -
685 -+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
686 -+// A helper class implementing Botan::User_Interface - which doesn't really
687 -+// interface with the user, but provides the necessary plumbing for Botan.
688 -+//
689 -+// See Botan commit 2d09d7d0cd4bd0e7155d001dd65a4f29103b158c
690 -+typedef std::runtime_error Passphrase_Required;
691 -+
692 -+class Dummy_UI : public Botan::User_Interface
693 -+{
694 -+public:
695 -+ virtual std::string get_passphrase(const std::string &, const std::string &,
696 -+ Botan::User_Interface::UI_Result &) const;
697 -+};
698 - #endif
699 -
700 -+#endif
701 -+
702 - // Local Variables:
703 - // mode: C++
704 - // fill-column: 76
705 -============================================================
706 ---- src/sha1.cc 5e1aa972d7c7d66e06320b039989652b830dcd75
707 -+++ src/sha1.cc 42e48b22fd88b25e0d38d4f91e1f13f8a83c7120
708 -@@ -50,9 +50,12 @@ CMD_HIDDEN(benchmark_sha1, "benchmark_sh
709 - Botan::Default_Benchmark_Timer timer;
710 - std::map<std::string, double> results =
711 - Botan::algorithm_benchmark("SHA-1", milliseconds, timer, rng, af);
712 -+#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,11)
713 -+ std::map<std::string, double> results =
714 -+ Botan::algorithm_benchmark("SHA-1", milliseconds, rng, af);
715 - #else
716 - std::map<std::string, double> results =
717 -- Botan::algorithm_benchmark("SHA-1", milliseconds, rng, af);
718 -+ Botan::algorithm_benchmark("SHA-1", af, rng, milliseconds, 16);
719 - #endif
720 -
721 - for(std::map<std::string, double>::const_iterator i = results.begin();
722 -============================================================
723 ---- src/ssh_agent.cc 6d188e7012a0b82f782563b09bbd7adf3f70cf75
724 -+++ src/ssh_agent.cc 4a0dcab873559e934e41c5f220b5434d35600d9b
725 -@@ -385,9 +385,9 @@ ssh_agent::has_key(const keypair & key)
726 - ssh_agent::has_key(const keypair & key)
727 - {
728 - //grab the monotone public key as an RSA_PublicKey
729 -- SecureVector<Botan::byte> pub_block;
730 -- pub_block.set(reinterpret_cast<Botan::byte const *>((key.pub)().data()),
731 -- (key.pub)().size());
732 -+ SecureVector<Botan::byte> pub_block
733 -+ (reinterpret_cast<Botan::byte const *>((key.pub)().data()),
734 -+ (key.pub)().size());
735 - L(FL("has_key: building %d-byte pub key") % pub_block.size());
736 - shared_ptr<X509_PublicKey> x509_key =
737 - shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));
738 -============================================================
739 ---- src/transforms.cc cdfb6854ef4992faba21074145f3c8269b845b11
740 -+++ src/transforms.cc b99278ffe95c0081bf4986bc74d3699c37a52948
741 -@@ -53,15 +53,16 @@ using Botan::Hash_Filter;
742 - // paradigm "must" be used. this program is intended for source code
743 - // control and I make no bones about it.
744 -
745 --NORETURN(static inline void error_in_transform(Botan::Exception & e));
746 -+NORETURN(static inline void error_in_transform(std::exception & e));
747 -
748 - static inline void
749 --error_in_transform(Botan::Exception & e, origin::type caused_by)
750 -+error_in_transform(std::exception & e, origin::type caused_by)
751 - {
752 - // these classes can all indicate data corruption
753 - if (typeid(e) == typeid(Botan::Encoding_Error)
754 - || typeid(e) == typeid(Botan::Decoding_Error)
755 - || typeid(e) == typeid(Botan::Stream_IO_Error)
756 -+ || typeid(e) == typeid(Botan::Invalid_Argument)
757 - || typeid(e) == typeid(Botan::Integrity_Failure))
758 - {
759 - // clean up the what() string a little: throw away the
760 -@@ -107,7 +108,7 @@ error_in_transform(Botan::Exception & e,
761 - pipe->process_msg(in); \
762 - out = pipe->read_all_as_string(Pipe::LAST_MESSAGE); \
763 - } \
764 -- catch (Botan::Exception & e) \
765 -+ catch (std::exception & e) \
766 - { \
767 - pipe.reset(new Pipe(new T(carg))); \
768 - error_in_transform(e, made_from); \
769 -@@ -173,7 +174,7 @@ template<> string xform<Botan::Hex_Decod
770 - {
771 - throw Botan::Decoding_Error(string("invalid hex character '") + (char)c + "'");
772 - }
773 -- catch(Botan::Exception & e)
774 -+ catch(std::exception & e)
775 - {
776 - error_in_transform(e, made_from);
777 - }
778 -@@ -219,7 +220,7 @@ void pack(T const & in, base64< gzip<T>
779 - tmp = pipe->read_all_as_string(Pipe::LAST_MESSAGE);
780 - out = base64< gzip<T> >(tmp, in.made_from);
781 - }
782 -- catch (Botan::Exception & e)
783 -+ catch (std::exception & e)
784 - {
785 - pipe.reset(new Pipe(new Gzip_Compression,
786 - new Base64_Encoder));
787 -@@ -237,7 +238,7 @@ void unpack(base64< gzip<T> > const & in
788 - pipe->process_msg(in());
789 - out = T(pipe->read_all_as_string(Pipe::LAST_MESSAGE), in.made_from);
790 - }
791 -- catch (Botan::Exception & e)
792 -+ catch (std::exception & e)
793 - {
794 - pipe.reset(new Pipe(new Base64_Decoder,
795 - new Gzip_Decompression));
796 -@@ -264,7 +265,7 @@ calculate_ident(data const & dat,
797 - p->process_msg(dat());
798 - ident = id(p->read_all_as_string(Pipe::LAST_MESSAGE), dat.made_from);
799 - }
800 -- catch (Botan::Exception & e)
801 -+ catch (std::exception & e)
802 - {
803 - p.reset(new Pipe(new Hash_Filter("SHA-160")));
804 - error_in_transform(e, dat.made_from);
805
806 diff --git a/dev-vcs/monotone/files/monotone-1.0-gcc6.patch b/dev-vcs/monotone/files/monotone-1.0-gcc6.patch
807 deleted file mode 100644
808 index f9e1751e09b..00000000000
809 --- a/dev-vcs/monotone/files/monotone-1.0-gcc6.patch
810 +++ /dev/null
811 @@ -1,64 +0,0 @@
812 -Bug: https://bugs.gentoo.org/594538
813 -
814 ---- a/src/cache_logger.hh
815 -+++ b/src/cache_logger.hh
816 -@@ -23,7 +23,7 @@
817 - // if given the empty filename, do nothing
818 - explicit cache_logger(std::string const & filename, int max_size);
819 -
820 -- bool logging() const { return _impl; }
821 -+ bool logging() const { return static_cast<bool>(_impl); }
822 -
823 - void log_exists(bool exists, int position, int item_count, int est_size) const;
824 - void log_touch(bool exists, int position, int item_count, int est_size) const;
825 ---- a/src/cmd_ws_commit.cc
826 -+++ b/src/cmd_ws_commit.cc
827 -@@ -1170,7 +1170,7 @@
828 - {
829 - for (attr_map_t::iterator i = node->attrs.begin();
830 - i != node->attrs.end(); ++i)
831 -- i->second = make_pair(false, "");
832 -+ i->second = make_pair(false, attr_value(""));
833 - }
834 - else
835 - {
836 -@@ -1179,7 +1179,7 @@
837 - E(node->attrs.find(a_key) != node->attrs.end(), origin::user,
838 - F("path '%s' does not have attribute '%s'")
839 - % path % a_key);
840 -- node->attrs[a_key] = make_pair(false, "");
841 -+ node->attrs[a_key] = make_pair(false, attr_value(""));
842 - }
843 -
844 - cset cs;
845 ---- a/src/roster.cc
846 -+++ b/src/roster.cc
847 -@@ -223,7 +223,7 @@
848 -
849 - bool marking_map::contains(node_id nid) const
850 - {
851 -- return _store.get_if_present(nid);
852 -+ return static_cast<bool>(_store.get_if_present(nid));
853 - }
854 -
855 - void marking_map::remove_marking(node_id nid)
856 -@@ -727,7 +727,7 @@
857 - bool
858 - roster_t::has_node(node_id n) const
859 - {
860 -- return nodes.get_if_present(n);
861 -+ return static_cast<bool>(nodes.get_if_present(n));
862 - }
863 -
864 - bool
865 -@@ -1898,8 +1898,8 @@
866 - node_t const &left_node = left_roster.all_nodes().get_if_present(i->first);
867 - node_t const &right_node = right_roster.all_nodes().get_if_present(i->first);
868 -
869 -- bool exists_in_left = (left_node);
870 -- bool exists_in_right = (right_node);
871 -+ bool exists_in_left = static_cast<bool>(left_node);
872 -+ bool exists_in_right = static_cast<bool>(right_node);
873 -
874 - if (!exists_in_left && !exists_in_right)
875 - mark_new_node(new_rid, n, new_markings);
876
877 diff --git a/dev-vcs/monotone/files/monotone-1.0-glibc-2.14-file-handle.patch b/dev-vcs/monotone/files/monotone-1.0-glibc-2.14-file-handle.patch
878 deleted file mode 100644
879 index a6e28223222..00000000000
880 --- a/dev-vcs/monotone/files/monotone-1.0-glibc-2.14-file-handle.patch
881 +++ /dev/null
882 @@ -1,166 +0,0 @@
883 -Revision: da62cad10eda55aa233ac124273f3db4f541137a
884 -Parent: 65bcb8cf8b32f68a5b48629b328f6d65979e58df
885 -Author: Thomas Moschny <thomas.moschny@×××.de>
886 -Date: 07.05.2011 13:32:06
887 -Branch: net.venge.monotone
888 -
889 -Changelog:
890 -
891 -* src/rcs_file.cc: Rename struct "file_handle" to "rcs_file_handle"
892 - to avoid a name clash with a struct of same name defined by newer
893 - glibc's "fcntl.h". For aesthetic reasons, also rename struct
894 - "file_source".
895 -
896 -References:
897 -https://code.monotone.ca/p/monotone/source/commit/da62cad10eda55aa233ac124273f3db4f541137a/
898 -https://bugs.gentoo.org/396651
899 -
900 -============================================================
901 ---- src/rcs_file.cc 885b3fbe7b6cfed78816f0e57cd71d44616213c6
902 -+++ src/rcs_file.cc 03cf68912a4a708545ebce3d415c0e970ddead0b
903 -@@ -42,12 +42,12 @@ struct
904 -
905 - #ifdef HAVE_MMAP
906 - struct
907 --file_handle
908 -+rcs_file_handle
909 - {
910 - string const & filename;
911 - off_t length;
912 - int fd;
913 -- file_handle(string const & fn) :
914 -+ rcs_file_handle(string const & fn) :
915 - filename(fn),
916 - length(0),
917 - fd(-1)
918 -@@ -60,13 +60,13 @@ file_handle
919 - if (fd == -1)
920 - throw oops("open of " + filename + " failed");
921 - }
922 -- ~file_handle()
923 -+ ~rcs_file_handle()
924 - {
925 - if (close(fd) == -1)
926 - throw oops("close of " + filename + " failed");
927 - }
928 - };
929 --struct file_source
930 -+struct rcs_file_source
931 - {
932 - string const & filename;
933 - int fd;
934 -@@ -91,7 +91,7 @@ struct file_source
935 - ++pos;
936 - return good();
937 - }
938 -- file_source(string const & fn,
939 -+ rcs_file_source(string const & fn,
940 - int f,
941 - off_t len) :
942 - filename(fn),
943 -@@ -104,7 +104,7 @@ struct file_source
944 - if (mapping == MAP_FAILED)
945 - throw oops("mmap of " + filename + " failed");
946 - }
947 -- ~file_source()
948 -+ ~rcs_file_source()
949 - {
950 - if (munmap(mapping, length) == -1)
951 - throw oops("munmapping " + filename + " failed, after reading RCS file");
952 -@@ -112,12 +112,12 @@ struct
953 - };
954 - #elif defined(WIN32)
955 - struct
956 --file_handle
957 -+rcs_file_handle
958 - {
959 - string const & filename;
960 - off_t length;
961 - HANDLE fd;
962 -- file_handle(string const & fn) :
963 -+ rcs_file_handle(string const & fn) :
964 - filename(fn),
965 - length(0),
966 - fd(NULL)
967 -@@ -134,7 +134,7 @@ file_handle
968 - if (fd == NULL)
969 - throw oops("open of " + filename + " failed");
970 - }
971 -- ~file_handle()
972 -+ ~rcs_file_handle()
973 - {
974 - if (CloseHandle(fd)==0)
975 - throw oops("close of " + filename + " failed");
976 -@@ -142,7 +142,7 @@ struct
977 - };
978 -
979 - struct
980 --file_source
981 -+rcs_file_source
982 - {
983 - string const & filename;
984 - HANDLE fd,map;
985 -@@ -167,7 +167,7 @@ file_source
986 - ++pos;
987 - return good();
988 - }
989 -- file_source(string const & fn,
990 -+ rcs_file_source(string const & fn,
991 - HANDLE f,
992 - off_t len) :
993 - filename(fn),
994 -@@ -183,7 +183,7 @@ file_source
995 - if (mapping==NULL)
996 - throw oops("MapViewOfFile of " + filename + " failed");
997 - }
998 -- ~file_source()
999 -+ ~rcs_file_source()
1000 - {
1001 - if (UnmapViewOfFile(mapping)==0)
1002 - throw oops("UnmapViewOfFile of " + filename + " failed");
1003 -@@ -193,7 +193,7 @@ file_source
1004 - };
1005 - #else
1006 - // no mmap at all
1007 --typedef istream file_source;
1008 -+typedef istream rcs_file_source;
1009 - #endif
1010 -
1011 - typedef enum
1012 -@@ -220,7 +220,7 @@ static token_type
1013 - }
1014 -
1015 - static token_type
1016 --get_token(file_source & ist,
1017 -+get_token(rcs_file_source & ist,
1018 - string & str,
1019 - size_t & line,
1020 - size_t & col)
1021 -@@ -303,14 +303,14 @@ struct parser
1022 -
1023 - struct parser
1024 - {
1025 -- file_source & ist;
1026 -+ rcs_file_source & ist;
1027 - rcs_file & r;
1028 - string token;
1029 - token_type ttype;
1030 -
1031 - size_t line, col;
1032 -
1033 -- parser(file_source & s,
1034 -+ parser(rcs_file_source & s,
1035 - rcs_file & r)
1036 - : ist(s), r(r), line(1), col(1)
1037 - {}
1038 -@@ -489,8 +489,8 @@ parse_rcs_file(string const & filename,
1039 - parse_rcs_file(string const & filename, rcs_file & r)
1040 - {
1041 - #if defined(HAVE_MMAP) || defined(WIN32)
1042 -- file_handle handle(filename);
1043 -- file_source ifs(filename, handle.fd, handle.length);
1044 -+ rcs_file_handle handle(filename);
1045 -+ rcs_file_source ifs(filename, handle.fd, handle.length);
1046 - #else
1047 - ifstream ifs(filename.c_str());
1048 - ifs.unsetf(ios_base::skipws);
1049
1050 diff --git a/dev-vcs/monotone/files/monotone-1.0-pcre3.patch b/dev-vcs/monotone/files/monotone-1.0-pcre3.patch
1051 deleted file mode 100644
1052 index 932538e38a4..00000000000
1053 --- a/dev-vcs/monotone/files/monotone-1.0-pcre3.patch
1054 +++ /dev/null
1055 @@ -1,26 +0,0 @@
1056 -Author: Francis Russell
1057 -Bug-Debian: http://bugs.debian.org/665448
1058 -Description: The test 'syntax_errors_in_.mtn-ignore' from the monotone
1059 - test suite contains a .mtn-ignore file which contains a number of
1060 - regular expressions. Some of these are intended to match and fail to
1061 - match the names of files created by the test harness. The rest have
1062 - invalid syntax and should be ignored.
1063 - .
1064 - One regex, '(?<=\C)' is presumably intended to be invalid, but with
1065 - the most recent version of pcre3 matches most files and therefore
1066 - causes the test to fail. In fact, it appears to be a valid regex that
1067 - performs a positive look behind to match a single data unit (usually a
1068 - byte, even in UTF mode). This patch removes the problematic regex until
1069 - the issue can be addressed upstream.
1070 -Index: monotone-1.0/test/func/syntax_errors_in_.mtn-ignore/mtn-ignore
1071 -===================================================================
1072 ---- monotone-1.0.orig/test/func/syntax_errors_in_.mtn-ignore/mtn-ignore 2011-03-26 06:41:05.000000000 +0000
1073 -+++ monotone-1.0/test/func/syntax_errors_in_.mtn-ignore/mtn-ignore 2012-03-25 20:02:37.695875219 +0100
1074 -@@ -21,7 +21,6 @@
1075 - [[:fnord:]]
1076 - \\x{123456}
1077 - (?(0))
1078 --(?<=\C)
1079 - \l
1080 - (?C256)
1081 - (?C1
1082
1083 diff --git a/dev-vcs/monotone/files/monotone-1.0-texinfo-5.1.patch b/dev-vcs/monotone/files/monotone-1.0-texinfo-5.1.patch
1084 deleted file mode 100644
1085 index cb457b547d1..00000000000
1086 --- a/dev-vcs/monotone/files/monotone-1.0-texinfo-5.1.patch
1087 +++ /dev/null
1088 @@ -1,625 +0,0 @@
1089 -Fixes build issue with texinfo-5.1
1090 -https://bugs.gentoo.org/show_bug.cgi?id=483122
1091 -
1092 -============================================================
1093 ---- doc/monotone.texi fcc02ef992214968bfbdd4a1f968846535de22f7
1094 -+++ doc/monotone.texi 4feaab5a3c304a6a465402d6069d214137d63198
1095 -@@ -4845,7 +4845,7 @@ @subsection Global Options
1096 - Cancel all previous @option{--rcfile} options (standard rcfiles are
1097 - still loaded). See @ref{rcfiles}.
1098 -
1099 --@itemx --root <arg>
1100 -+@item --root <arg>
1101 - Limit the search for a workspace to the specified root directory
1102 -
1103 - @item --ssh-sign <arg>
1104 -@@ -6247,7 +6247,7 @@ @section Informative
1105 - the root directory of the specified path (or the workspace, if no path
1106 - is given).
1107 -
1108 --@itemx mtn list vars [@var{domain}]
1109 -+@item mtn list vars [@var{domain}]
1110 - @itemx mtn ls vars
1111 - @command{ls vars} is an alias for @command{list vars}.
1112 -
1113 -============================================================
1114 ---- doc/pcrepattern.texi 43ef52850c1fd113b8a21d63634bafe61b3aec45
1115 -+++ doc/pcrepattern.texi 7ae6fb9367a2410c588230742d63ff4f83daa909
1116 -@@ -74,32 +74,32 @@ @subsubheading Characters and Metacharac
1117 - brackets, the metacharacters are as follows:
1118 -
1119 - @table @code
1120 --@itemx \
1121 -+@item \
1122 - general escape character with several uses
1123 --@itemx ^
1124 -+@item ^
1125 - assert start of string (or line, in multiline mode)
1126 --@itemx $
1127 -+@item $
1128 - assert end of string (or line, in multiline mode)
1129 --@itemx .
1130 -+@item .
1131 - match any character except newline (by default)
1132 --@itemx [
1133 -+@item [
1134 - start character class definition
1135 --@itemx |
1136 -+@item |
1137 - start of alternative branch
1138 --@itemx (
1139 -+@item (
1140 - start subpattern
1141 --@itemx )
1142 -+@item )
1143 - end subpattern
1144 --@itemx ?
1145 -+@item ?
1146 - extends the meaning of @samp{(}
1147 - also 0 or 1 quantifier
1148 - also quantifier minimizer
1149 --@itemx *
1150 -+@item *
1151 - 0 or more quantifier
1152 --@itemx +
1153 -+@item +
1154 - 1 or more quantifier
1155 - also ``possessive quantifier''
1156 --@itemx @{
1157 -+@item @{
1158 - start min/max quantifier
1159 - @end table
1160 -
1161 -@@ -108,16 +108,16 @@ @subsubheading Characters and Metacharac
1162 - class". In a character class the only metacharacters are:
1163 -
1164 - @table @code
1165 --@itemx \
1166 -+@item \
1167 - general escape character
1168 --@itemx ^
1169 -+@item ^
1170 - negate the class, but only if the first character
1171 --@itemx -
1172 -+@item -
1173 - indicates character range
1174 --@itemx [
1175 -+@item [
1176 - POSIX character class (only if followed by POSIX
1177 - syntax)
1178 --@itemx ]
1179 -+@item ]
1180 - terminates the character class
1181 - @end table
1182 -
1183 -@@ -159,25 +159,25 @@ @subsubheading Non-printing Characters
1184 - represents:
1185 -
1186 - @table @code
1187 --@itemx \a
1188 -+@item \a
1189 - alarm, that is, the BEL character (hex 07)
1190 --@itemx \c@var{x}
1191 -+@item \c@var{x}
1192 - "control-@var{x}", where @var{x} is any character
1193 --@itemx \e
1194 -+@item \e
1195 - escape (hex 1B)
1196 --@itemx \f
1197 -+@item \f
1198 - formfeed (hex 0C)
1199 --@itemx \n
1200 -+@item \n
1201 - linefeed (hex 0A)
1202 --@itemx \r
1203 -+@item \r
1204 - carriage return (hex 0D)
1205 --@itemx \t
1206 -+@item \t
1207 - tab (hex 09)
1208 --@itemx \@var{ddd}
1209 -+@item \@var{ddd}
1210 - character with octal code @var{ddd}, or backreference
1211 --@itemx \x@var{hh}
1212 -+@item \x@var{hh}
1213 - character with hex code @var{hh}
1214 --@itemx \x@{@var{hhh...}@}
1215 -+@item \x@{@var{hhh...}@}
1216 - character with hex code @var{hhh...}
1217 - @end table
1218 -
1219 -@@ -244,27 +244,27 @@ @subsubheading Non-printing Characters
1220 - @samp{\777} are permitted. For example:
1221 -
1222 - @table @code
1223 --@itemx \040
1224 -+@item \040
1225 - is another way of writing a space
1226 --@itemx \40
1227 -+@item \40
1228 - is the same, provided there are fewer than 40
1229 - previous capturing subpatterns
1230 --@itemx \7
1231 -+@item \7
1232 - is always a back reference
1233 --@itemx \11
1234 -+@item \11
1235 - might be a back reference, or another way of
1236 - writing a tab
1237 --@itemx \011
1238 -+@item \011
1239 - is always a tab
1240 --@itemx \0113
1241 -+@item \0113
1242 - is a tab followed by the character @samp{3}
1243 --@itemx \113
1244 -+@item \113
1245 - might be a back reference, otherwise the
1246 - character with octal code 113
1247 --@itemx \377
1248 -+@item \377
1249 - might be a back reference, otherwise
1250 - the byte consisting entirely of 1 bits
1251 --@itemx \81
1252 -+@item \81
1253 - is either a back reference, or a binary zero
1254 - followed by the two characters @samp{8} and @samp{1}
1255 - @end table
1256 -@@ -294,25 +294,25 @@ @subsubheading Generic character types
1257 - following are always recognized:
1258 -
1259 - @table @code
1260 --@itemx \d
1261 -+@item \d
1262 - any decimal digit
1263 --@itemx \D
1264 -+@item \D
1265 - any character that is not a decimal digit
1266 --@itemx \h
1267 -+@item \h
1268 - any horizontal whitespace character
1269 --@itemx \H
1270 -+@item \H
1271 - any character that is not a horizontal whitespace character
1272 --@itemx \s
1273 -+@item \s
1274 - any whitespace character
1275 --@itemx \S
1276 -+@item \S
1277 - any character that is not a whitespace character
1278 --@itemx \v
1279 -+@item \v
1280 - any vertical whitespace character
1281 --@itemx \V
1282 -+@item \V
1283 - any character that is not a vertical whitespace character
1284 --@itemx \w
1285 -+@item \w
1286 - any ``word'' character
1287 --@itemx \W
1288 -+@item \W
1289 - any ``non-word'' character
1290 - @end table
1291 -
1292 -@@ -342,43 +342,43 @@ @subsubheading Generic character types
1293 - characters are:
1294 -
1295 - @table @code
1296 --@itemx U+0009
1297 -+@item U+0009
1298 - Horizontal tab
1299 --@itemx U+0020
1300 -+@item U+0020
1301 - Space
1302 --@itemx U+00A0
1303 -+@item U+00A0
1304 - Non-break space
1305 --@itemx U+1680
1306 -+@item U+1680
1307 - Ogham space mark
1308 --@itemx U+180E
1309 -+@item U+180E
1310 - Mongolian vowel separator
1311 - @item U+2000
1312 - En quad
1313 --@itemx U+2001
1314 -+@item U+2001
1315 - Em quad
1316 --@itemx U+2002
1317 -+@item U+2002
1318 - En space
1319 --@itemx U+2003
1320 -+@item U+2003
1321 - Em space
1322 --@itemx U+2004
1323 -+@item U+2004
1324 - Three-per-em space
1325 --@itemx U+2005
1326 -+@item U+2005
1327 - Four-per-em space
1328 --@itemx U+2006
1329 -+@item U+2006
1330 - Six-per-em space
1331 - @item U+2007
1332 - Figure space
1333 --@itemx U+2008
1334 -+@item U+2008
1335 - Punctuation space
1336 --@itemx U+2009
1337 -+@item U+2009
1338 - Thin space
1339 --@itemx U+200A
1340 -+@item U+200A
1341 - Hair space
1342 --@itemx U+202F
1343 -+@item U+202F
1344 - Narrow no-break space
1345 --@itemx U+205F
1346 -+@item U+205F
1347 - Medium mathematical space
1348 --@itemx U+3000
1349 -+@item U+3000
1350 - Ideographic space
1351 - @end table
1352 -
1353 -@@ -386,19 +386,19 @@ @subsubheading Generic character types
1354 - The vertical space characters are:
1355 -
1356 - @table @code
1357 --@itemx U+000A
1358 -+@item U+000A
1359 - Linefeed
1360 --@itemx U+000B
1361 -+@item U+000B
1362 - Vertical tab
1363 --@itemx U+000C
1364 -+@item U+000C
1365 - Formfeed
1366 --@itemx U+000D
1367 -+@item U+000D
1368 - Carriage return
1369 --@itemx U+0085
1370 -+@item U+0085
1371 - Next line
1372 --@itemx U+2028
1373 -+@item U+2028
1374 - Line separator
1375 --@itemx U+2029
1376 -+@item U+2029
1377 - Paragraph separator
1378 - @end table
1379 -
1380 -@@ -418,15 +418,15 @@ @subsubheading Newline Conventions
1381 - the following five sequences:
1382 -
1383 - @table @code
1384 --@itemx (*CR)
1385 -+@item (*CR)
1386 - carriage return
1387 --@itemx (*LF)
1388 -+@item (*LF)
1389 - linefeed
1390 --@itemx (*CRLF)
1391 -+@item (*CRLF)
1392 - carriage return, followed by linefeed
1393 --@itemx (*ANYCRLF)
1394 -+@item (*ANYCRLF)
1395 - any of the three above
1396 --@itemx (*ANY)
1397 -+@item (*ANY)
1398 - all Unicode newline sequences
1399 - @end table
1400 -
1401 -@@ -474,9 +474,9 @@ @subsubheading Newline Sequences
1402 - pattern string with one of the following sequences:
1403 -
1404 - @table @code
1405 --@itemx (*BSR_ANYCRLF)
1406 -+@item (*BSR_ANYCRLF)
1407 - @key{CR}, @key{LF}, or @key{CR}@key{LF} only
1408 --@itemx (*BSR_UNICODE)
1409 -+@item (*BSR_UNICODE)
1410 - any Unicode newline sequence (the default)
1411 - @end table
1412 -
1413 -@@ -501,11 +501,11 @@ @subsubheading Unicode Character Propert
1414 - 256, but they do work in this mode. The extra escape sequences are:
1415 -
1416 - @table @code
1417 --@itemx \p@{@var{xx}@}
1418 -+@item \p@{@var{xx}@}
1419 - a character with the @var{xx} property
1420 --@itemx \P@{@var{xx}@}
1421 -+@item \P@{@var{xx}@}
1422 - a character without the @var{xx} property
1423 --@itemx \X
1424 -+@item \X
1425 - an extended Unicode sequence
1426 - @end table
1427 -
1428 -@@ -618,83 +618,83 @@ @subsubheading Unicode Character Propert
1429 - @table @code
1430 - @item C
1431 - Other
1432 --@itemx Cc
1433 -+@item Cc
1434 - Control
1435 --@itemx Cf
1436 -+@item Cf
1437 - Format
1438 --@itemx Cn
1439 -+@item Cn
1440 - Unassigned
1441 --@itemx Co
1442 -+@item Co
1443 - Private use
1444 --@itemx Cs
1445 -+@item Cs
1446 - Surrogate
1447 -
1448 - @item L
1449 - Letter
1450 --@itemx Ll
1451 -+@item Ll
1452 - Lower case letter
1453 --@itemx Lm
1454 -+@item Lm
1455 - Modifier letter
1456 --@itemx Lo
1457 -+@item Lo
1458 - Other letter
1459 --@itemx Lt
1460 -+@item Lt
1461 - Title case letter
1462 --@itemx Lu
1463 -+@item Lu
1464 - Upper case letter
1465 -
1466 - @item M
1467 - Mark
1468 --@itemx Mc
1469 -+@item Mc
1470 - Spacing mark
1471 --@itemx Me
1472 -+@item Me
1473 - Enclosing mark
1474 --@itemx Mn
1475 -+@item Mn
1476 - Non-spacing mark
1477 -
1478 - @item N
1479 - Number
1480 --@itemx Nd
1481 -+@item Nd
1482 - Decimal number
1483 --@itemx Nl
1484 -+@item Nl
1485 - Letter number
1486 --@itemx No
1487 -+@item No
1488 - Other number
1489 -
1490 - @item P
1491 - Punctuation
1492 --@itemx Pc
1493 -+@item Pc
1494 - Connector punctuation
1495 --@itemx Pd
1496 -+@item Pd
1497 - Dash punctuation
1498 --@itemx Pe
1499 -+@item Pe
1500 - Close punctuation
1501 --@itemx Pf
1502 -+@item Pf
1503 - Final punctuation
1504 --@itemx Pi
1505 -+@item Pi
1506 - Initial punctuation
1507 --@itemx Po
1508 -+@item Po
1509 - Other punctuation
1510 --@itemx Ps
1511 -+@item Ps
1512 - Open punctuation
1513 -
1514 - @item S
1515 - Symbol
1516 --@itemx Sc
1517 -+@item Sc
1518 - Currency symbol
1519 --@itemx Sk
1520 -+@item Sk
1521 - Modifier symbol
1522 --@itemx Sm
1523 -+@item Sm
1524 - Mathematical symbol
1525 --@itemx So
1526 -+@item So
1527 - Other symbol
1528 -
1529 - @item Z
1530 - Separator
1531 --@itemx Zl
1532 -+@item Zl
1533 - Line separator
1534 --@itemx Zp
1535 -+@item Zp
1536 - Paragraph separator
1537 --@itemx Zs
1538 -+@item Zs
1539 - Space separator
1540 - @end table
1541 -
1542 -@@ -771,18 +771,18 @@ @subsubheading Simple assertions
1543 - described below. The backslashed assertions are:
1544 -
1545 - @table @code
1546 --@itemx \b
1547 -+@item \b
1548 - matches at a word boundary
1549 --@itemx \B
1550 -+@item \B
1551 - matches when not at a word boundary
1552 --@itemx \A
1553 -+@item \A
1554 - matches at the start of the subject
1555 --@itemx \Z
1556 -+@item \Z
1557 - matches at the end of the subject
1558 - also matches before a newline at the end of the subject
1559 --@itemx \z
1560 -+@item \z
1561 - matches only at the end of the subject
1562 --@itemx \G
1563 -+@item \G
1564 - matches at the first matching position in the subject
1565 - @end table
1566 -
1567 -@@ -993,33 +993,33 @@ @subsubheading POSIX Character Classes
1568 - supported class names are
1569 -
1570 - @table @code
1571 --@itemx alnum
1572 -+@item alnum
1573 - letters and digits
1574 --@itemx alpha
1575 -+@item alpha
1576 - letters
1577 --@itemx ascii
1578 -+@item ascii
1579 - character codes 0 -- 127
1580 --@itemx blank
1581 -+@item blank
1582 - space or tab only
1583 --@itemx cntrl
1584 -+@item cntrl
1585 - control characters
1586 --@itemx digit
1587 -+@item digit
1588 - decimal digits (same as @samp{\d})
1589 --@itemx graph
1590 -+@item graph
1591 - printing characters, excluding space
1592 --@itemx lower
1593 -+@item lower
1594 - lower case letters
1595 --@itemx print
1596 -+@item print
1597 - printing characters, including space
1598 --@itemx punct
1599 -+@item punct
1600 - printing characters, excluding letters and digits
1601 --@itemx space
1602 -+@item space
1603 - white space (not quite the same as @samp{\s})
1604 --@itemx upper
1605 -+@item upper
1606 - upper case letters
1607 --@itemx word
1608 -+@item word
1609 - ``word'' characters (same as @samp{\w})
1610 --@itemx xdigit
1611 -+@item xdigit
1612 - hexadecimal digits
1613 - @end table
1614 -
1615 -@@ -1071,22 +1071,22 @@ @subsubheading Internal Option Setting
1616 - @samp{)}. The option letters are
1617 -
1618 - @table @code
1619 --@itemx i
1620 -+@item i
1621 - Caseless: characters in one case match the corresponding
1622 - characters in other cases as well.
1623 --@itemx m
1624 -+@item m
1625 - Multiline: @samp{^} and @samp{$} match at newlines
1626 - as well as at beginning and end of string.
1627 --@itemx s
1628 -+@item s
1629 - Dotall: dot matches any character, including newline characters.
1630 --@itemx x
1631 -+@item x
1632 - Extended syntax: unescaped white space is ignored and embedded
1633 - comments are possible.
1634 --@itemx J
1635 -+@item J
1636 - Dupnames: names for capturing subpattern need not be unique.
1637 --@itemx U
1638 -+@item U
1639 - Ungreedy: quantifiers match as few times as possible by default.
1640 --@itemx X
1641 -+@item X
1642 - Extra: for forward compatibility, give an error if any escape sequence
1643 - with no defined meaning appears.
1644 - @end table
1645 -@@ -1358,11 +1358,11 @@ @subsubheading Repetition
1646 - single-character abbreviations:
1647 -
1648 - @table @code
1649 --@itemx *
1650 -+@item *
1651 - is equivalent to @{0,@}
1652 --@itemx +
1653 -+@item +
1654 - is equivalent to @{1,@}
1655 --@itemx ?
1656 -+@item ?
1657 - is equivalent to @{0,1@}
1658 - @end table
1659 -
1660 -@@ -2302,7 +2302,7 @@ @subsubheading Verbs that act immediatel
1661 - The following verbs act as soon as they are encountered:
1662 -
1663 - @table @code
1664 --@itemx (*ACCEPT)
1665 -+@item (*ACCEPT)
1666 -
1667 - This verb causes the match to end successfully, skipping the remainder
1668 - of the pattern. When inside a recursion, only the innermost pattern is
1669 -@@ -2317,7 +2317,7 @@ @subsubheading Verbs that act immediatel
1670 - This matches @samp{AB}, @samp{AAD}, or @samp{ACD}, but when it matches
1671 - @samp{AB}, no data is captured.
1672 -
1673 --@itemx (*FAIL) @r{or} (*F)
1674 -+@item (*FAIL) @r{or} (*F)
1675 -
1676 - This verb causes the match to fail, forcing backtracking to occur. It
1677 - is equivalent to @samp{(?!)} but easier to read. It is not clear
1678 -@@ -2334,7 +2334,7 @@ @subsubheading Verbs that act after back
1679 - occurs.
1680 -
1681 - @table @code
1682 --@itemx (*COMMIT)
1683 -+@item (*COMMIT)
1684 -
1685 - This verb causes the whole match to fail outright if the rest of the
1686 - pattern does not match. Even if the pattern is unanchored, no further
1687 -@@ -2350,7 +2350,7 @@ @subsubheading Verbs that act after back
1688 - This matches @samp{xxaab} but not @samp{aacaab}. It can be thought of
1689 - as a kind of dynamic anchor, or ``I've started, so I must finish.''
1690 -
1691 --@itemx (*PRUNE)
1692 -+@item (*PRUNE)
1693 -
1694 - This verb causes the match to fail at the current position if the rest
1695 - of the pattern does not match. If the pattern is unanchored, the
1696 -@@ -2363,7 +2363,7 @@ @subsubheading Verbs that act after back
1697 - are some uses of @code{(*PRUNE)} that cannot be expressed in any other
1698 - way.
1699 -
1700 --@itemx (*SKIP)
1701 -+@item (*SKIP)
1702 -
1703 - This verb is like @code{(*PRUNE)}, except that if the pattern is
1704 - unanchored, the "bumpalong" advance is not to the next character, but
1705 -@@ -2383,7 +2383,7 @@ @subsubheading Verbs that act after back
1706 - attempt would start at the second character instead of skipping on to
1707 - @samp{c}.
1708 -
1709 --@itemx (*THEN)
1710 -+@item (*THEN)
1711 -
1712 - This verb causes a skip to the next alternation if the rest of the
1713 - pattern does not match. That is, it cancels pending backtracking, but
1714
1715 diff --git a/dev-vcs/monotone/monotone-1.0-r4.ebuild b/dev-vcs/monotone/monotone-1.0-r4.ebuild
1716 index 16d77a02eb4..2b4a541b8a1 100644
1717 --- a/dev-vcs/monotone/monotone-1.0-r4.ebuild
1718 +++ b/dev-vcs/monotone/monotone-1.0-r4.ebuild
1719 @@ -7,7 +7,8 @@ inherit bash-completion-r1 elisp-common eutils toolchain-funcs user
1720
1721 DESCRIPTION="Monotone Distributed Version Control System"
1722 HOMEPAGE="http://monotone.ca"
1723 -SRC_URI="http://monotone.ca/downloads/${PV}/${P}.tar.bz2"
1724 +SRC_URI="http://monotone.ca/downloads/${PV}/${P}.tar.bz2
1725 + https://dev.gentoo.org/~mgorny/dist/${P}-gentoo-patchset.tar.bz2"
1726
1727 LICENSE="GPL-2"
1728 SLOT="1"
1729 @@ -37,13 +38,13 @@ src_prepare() {
1730 ( $(gcc-major-version) -eq "3" && $(gcc-minor-version) -le 3 ) ]]; then
1731 die 'requires >=gcc-3.4'
1732 fi
1733 - epatch "${FILESDIR}/monotone-1.0-bash-completion-tests.patch"
1734 - epatch "${FILESDIR}/monotone-1.0-botan-1.10-v2.patch"
1735 - epatch "${FILESDIR}/monotone-1.0-glibc-2.14-file-handle.patch"
1736 - epatch "${FILESDIR}/monotone-1.0-boost-1.53.patch"
1737 - epatch "${FILESDIR}/monotone-1.0-pcre3.patch"
1738 - epatch "${FILESDIR}/monotone-1.0-texinfo-5.1.patch"
1739 - epatch "${FILESDIR}/monotone-1.0-gcc6.patch"
1740 + epatch "${WORKDIR}/${P}-gentoo-patchset/monotone-1.0-bash-completion-tests.patch"
1741 + epatch "${WORKDIR}/${P}-gentoo-patchset/monotone-1.0-botan-1.10-v2.patch"
1742 + epatch "${WORKDIR}/${P}-gentoo-patchset/monotone-1.0-glibc-2.14-file-handle.patch"
1743 + epatch "${WORKDIR}/${P}-gentoo-patchset/monotone-1.0-boost-1.53.patch"
1744 + epatch "${WORKDIR}/${P}-gentoo-patchset/monotone-1.0-pcre3.patch"
1745 + epatch "${WORKDIR}/${P}-gentoo-patchset/monotone-1.0-texinfo-5.1.patch"
1746 + epatch "${WORKDIR}/${P}-gentoo-patchset/monotone-1.0-gcc6.patch"
1747 }
1748
1749 src_configure() {