mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-18 22:06:04 +01:00
development/monotone: Updated for version 1.0.
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
This commit is contained in:
parent
92904f717a
commit
1a2ff195f9
4 changed files with 588 additions and 7 deletions
|
@ -26,7 +26,7 @@
|
|||
# THE SOFTWARE.
|
||||
|
||||
PRGNAM=monotone
|
||||
VERSION=${VERSION:-0.48}
|
||||
VERSION=${VERSION:-1.0}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
|
@ -63,7 +63,7 @@ rm -rf $PKG
|
|||
mkdir -p $TMP $PKG $OUTPUT
|
||||
cd $TMP
|
||||
rm -rf $PRGNAM-$VERSION
|
||||
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
|
||||
tar xvf $CWD/$PRGNAM-$VERSION.tar.?z*
|
||||
cd $PRGNAM-$VERSION
|
||||
chown -R root:root .
|
||||
find . \
|
||||
|
@ -72,6 +72,9 @@ find . \
|
|||
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||
-exec chmod 644 {} \;
|
||||
|
||||
# Thanks gentoo for the patches
|
||||
for i in $CWD/patches/* ; do patch -p0 < $i ; done
|
||||
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
CXXFLAGS="$SLKCFLAGS" \
|
||||
./configure \
|
||||
|
@ -93,12 +96,12 @@ rm -f $PKG/usr/info/dir
|
|||
gzip -9 $PKG/usr/info/*
|
||||
|
||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp -a AUTHORS COPYING ChangeLog HACKING NEWS UPGRADE README.changesets contrib \
|
||||
cp -a AUTHORS COPYING ChangeLog HACKING NEWS UPGRADE README contrib \
|
||||
$PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
|
||||
mkdir -p $PKG/etc/bash_completion.d/
|
||||
cp -a contrib/monotone.bash_completion $PKG/etc/bash_completion.d/
|
||||
cp -a extra/shell/monotone.bash_completion $PKG/etc/bash_completion.d/monotone.sh
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
PRGNAM="monotone"
|
||||
VERSION="0.48"
|
||||
VERSION="1.0"
|
||||
HOMEPAGE="http://www.monotone.ca"
|
||||
DOWNLOAD="http://monotone.ca/downloads/0.48/monotone-0.48.tar.gz"
|
||||
MD5SUM="330a1fe1d92c899d1ad539606f85a9f8"
|
||||
DOWNLOAD="http://www.monotone.ca/downloads/1.0/monotone-1.0.tar.bz2"
|
||||
MD5SUM="6a0b5d8560f08d76a950172f9ed0feff"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES="Botan lua"
|
||||
|
|
412
development/monotone/patches/monotone-1.0-botan-1.10.patch
Normal file
412
development/monotone/patches/monotone-1.0-botan-1.10.patch
Normal file
|
@ -0,0 +1,412 @@
|
|||
by Martin von Gagern:
|
||||
https://code.monotone.ca/p/monotone/issues/182/
|
||||
|
||||
============================================================
|
||||
--- src/database.cc 4c259f963c440fc95564dfec99b2f832f0bad643
|
||||
+++ src/database.cc 87efeeff2d3263ba98af684a4022f1897434ed2d
|
||||
@@ -3425,9 +3425,8 @@ database::encrypt_rsa(key_id const & pub
|
||||
rsa_pub_key pub;
|
||||
get_key(pub_id, pub);
|
||||
|
||||
- SecureVector<Botan::byte> pub_block;
|
||||
- pub_block.set(reinterpret_cast<Botan::byte const *>(pub().data()),
|
||||
- pub().size());
|
||||
+ SecureVector<Botan::byte> pub_block
|
||||
+ (reinterpret_cast<Botan::byte const *>(pub().data()), pub().size());
|
||||
|
||||
shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));
|
||||
shared_ptr<RSA_PublicKey> pub_key
|
||||
@@ -3471,14 +3470,13 @@ database::check_signature(key_id const &
|
||||
else
|
||||
{
|
||||
rsa_pub_key pub;
|
||||
- SecureVector<Botan::byte> pub_block;
|
||||
|
||||
if (!public_key_exists(id))
|
||||
return cert_unknown;
|
||||
|
||||
get_key(id, pub);
|
||||
- pub_block.set(reinterpret_cast<Botan::byte const *>(pub().data()),
|
||||
- pub().size());
|
||||
+ SecureVector<Botan::byte> pub_block
|
||||
+ (reinterpret_cast<Botan::byte const *>(pub().data()), pub().size());
|
||||
|
||||
L(FL("building verifier for %d-byte pub key") % pub_block.size());
|
||||
shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));
|
||||
============================================================
|
||||
--- src/gzip.cc e7c19bee910e3d421fd073933810ec52092b1d9b
|
||||
+++ src/gzip.cc bab290412cff6031b2d3bf9d1439a08499d39640
|
||||
@@ -137,7 +137,7 @@ void Gzip_Compression::start_msg()
|
||||
/*************************************************
|
||||
* Compress Input with Gzip *
|
||||
*************************************************/
|
||||
-void Gzip_Compression::write(const byte input[], u32bit length)
|
||||
+void Gzip_Compression::write(const byte input[], filter_length_t length)
|
||||
{
|
||||
|
||||
count += length;
|
||||
@@ -267,7 +267,7 @@ void Gzip_Decompression::start_msg()
|
||||
/*************************************************
|
||||
* Decompress Input with Gzip *
|
||||
*************************************************/
|
||||
-void Gzip_Decompression::write(const byte input[], u32bit length)
|
||||
+void Gzip_Decompression::write(const byte input[], filter_length_t length)
|
||||
{
|
||||
if(length) no_writes = false;
|
||||
|
||||
@@ -284,8 +284,8 @@ void Gzip_Decompression::write(const byt
|
||||
// Check the gzip header
|
||||
if (pos < sizeof(GZIP::GZIP_HEADER))
|
||||
{
|
||||
- u32bit len = std::min((u32bit)sizeof(GZIP::GZIP_HEADER)-pos, length);
|
||||
- u32bit cmplen = len;
|
||||
+ filter_length_t len = std::min((filter_length_t)sizeof(GZIP::GZIP_HEADER)-pos, length);
|
||||
+ filter_length_t cmplen = len;
|
||||
// The last byte is the OS flag - we don't care about that
|
||||
if (pos + len - 1 >= GZIP::HEADER_POS_OS)
|
||||
cmplen--;
|
||||
@@ -346,8 +346,14 @@ u32bit Gzip_Decompression::eat_footer(co
|
||||
if (footer.size() >= GZIP::FOOTER_LENGTH)
|
||||
throw Decoding_Error("Gzip_Decompression: Data integrity error in footer");
|
||||
|
||||
+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
+ size_t eat_len = std::min(GZIP::FOOTER_LENGTH-footer.size(),
|
||||
+ static_cast<size_t>(length));
|
||||
+ footer += std::make_pair(input, eat_len);
|
||||
+#else
|
||||
u32bit eat_len = std::min(GZIP::FOOTER_LENGTH-footer.size(), length);
|
||||
footer.append(input, eat_len);
|
||||
+#endif
|
||||
|
||||
if (footer.size() == GZIP::FOOTER_LENGTH)
|
||||
{
|
||||
@@ -377,7 +383,12 @@ void Gzip_Decompression::check_footer()
|
||||
for (int i = 0; i < 4; i++)
|
||||
buf[3-i] = tmpbuf[i];
|
||||
|
||||
+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
+ tmpbuf.resize(4);
|
||||
+ tmpbuf.copy(footer.begin(), 4);
|
||||
+#else
|
||||
tmpbuf.set(footer.begin(), 4);
|
||||
+#endif
|
||||
if (buf != tmpbuf)
|
||||
throw Decoding_Error("Gzip_Decompression: Data integrity error - CRC32 error");
|
||||
|
||||
@@ -412,7 +423,11 @@ void Gzip_Decompression::clear()
|
||||
no_writes = true;
|
||||
inflateReset(&(zlib->stream));
|
||||
|
||||
+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
+ footer.clear();
|
||||
+#else
|
||||
footer.destroy();
|
||||
+#endif
|
||||
pos = 0;
|
||||
datacount = 0;
|
||||
}
|
||||
============================================================
|
||||
--- src/gzip.hh 649dfc0b250954f39c0f73870f8bec3f32f7fa43
|
||||
+++ src/gzip.hh f462dfc1df71ae1e9a8203606fd29d9e0eda9b2a
|
||||
@@ -7,6 +7,7 @@
|
||||
#ifndef BOTAN_EXT_GZIP_H__
|
||||
#define BOTAN_EXT_GZIP_H__
|
||||
|
||||
+#include <botan/version.h>
|
||||
#include <botan/filter.h>
|
||||
#include <botan/pipe.h>
|
||||
|
||||
@@ -30,13 +31,19 @@ namespace GZIP {
|
||||
|
||||
}
|
||||
|
||||
+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
+ typedef size_t filter_length_t;
|
||||
+#else
|
||||
+ typedef u32bit filter_length_t;
|
||||
+#endif
|
||||
+
|
||||
/*************************************************
|
||||
* Gzip Compression Filter *
|
||||
*************************************************/
|
||||
class Gzip_Compression : public Filter
|
||||
{
|
||||
public:
|
||||
- void write(const byte input[], u32bit length);
|
||||
+ void write(const byte input[], filter_length_t length);
|
||||
void start_msg();
|
||||
void end_msg();
|
||||
std::string name() const { return "Gzip_Compression"; }
|
||||
@@ -60,7 +67,7 @@ class Gzip_Decompression : public Filter
|
||||
class Gzip_Decompression : public Filter
|
||||
{
|
||||
public:
|
||||
- void write(const byte input[], u32bit length);
|
||||
+ void write(const byte input[], filter_length_t length);
|
||||
void start_msg();
|
||||
void end_msg();
|
||||
std::string name() const { return "Gzip_Decompression"; }
|
||||
============================================================
|
||||
--- src/key_packet.cc d1306df89dd684badac02c03744cd446381c07d3
|
||||
+++ src/key_packet.cc c97262d161b23c9640972188979669b3e95afe7b
|
||||
@@ -106,8 +106,8 @@ namespace
|
||||
void validate_public_key_data(string const & name, string const & keydata) const
|
||||
{
|
||||
string decoded = decode_base64_as<string>(keydata, origin::user);
|
||||
- Botan::SecureVector<Botan::byte> key_block;
|
||||
- key_block.set(reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
|
||||
+ Botan::SecureVector<Botan::byte> key_block
|
||||
+ (reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
|
||||
try
|
||||
{
|
||||
Botan::X509::load_key(key_block);
|
||||
============================================================
|
||||
--- src/key_store.cc 64c4c4bed1fadc26b51207b9f61343f9dd7d3c6e
|
||||
+++ src/key_store.cc 1b1f1a989c21ee0dc69c540783ffb1fe4bceabf5
|
||||
@@ -572,13 +572,19 @@ key_store_state::decrypt_private_key(key
|
||||
try // with empty passphrase
|
||||
{
|
||||
Botan::DataSource_Memory ds(kp.priv());
|
||||
-#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
|
||||
+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
+ pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(), Dummy_UI()));
|
||||
+#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
|
||||
pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(), ""));
|
||||
#else
|
||||
pkcs8_key.reset(Botan::PKCS8::load_key(ds, ""));
|
||||
#endif
|
||||
}
|
||||
+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
+ catch (Passphrase_Required & e)
|
||||
+#else
|
||||
catch (Botan::Exception & e)
|
||||
+#endif
|
||||
{
|
||||
L(FL("failed to load key with no passphrase: %s") % e.what());
|
||||
|
||||
@@ -856,9 +862,9 @@ key_store::make_signature(database & db,
|
||||
{
|
||||
if (agent.connected()) {
|
||||
//grab the monotone public key as an RSA_PublicKey
|
||||
- SecureVector<Botan::byte> pub_block;
|
||||
- pub_block.set(reinterpret_cast<Botan::byte const *>(key.pub().data()),
|
||||
- key.pub().size());
|
||||
+ SecureVector<Botan::byte> pub_block
|
||||
+ (reinterpret_cast<Botan::byte const *>(key.pub().data()),
|
||||
+ key.pub().size());
|
||||
L(FL("make_signature: building %d-byte pub key") % pub_block.size());
|
||||
shared_ptr<X509_PublicKey> x509_key =
|
||||
shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));
|
||||
@@ -1031,8 +1037,14 @@ key_store_state::migrate_old_key_pair
|
||||
for (;;)
|
||||
try
|
||||
{
|
||||
+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
+ arc4_key.resize(phrase().size());
|
||||
+ arc4_key.copy(reinterpret_cast<Botan::byte const *>(phrase().data()),
|
||||
+ phrase().size());
|
||||
+#else
|
||||
arc4_key.set(reinterpret_cast<Botan::byte const *>(phrase().data()),
|
||||
phrase().size());
|
||||
+#endif
|
||||
|
||||
Pipe arc4_decryptor(get_cipher("ARC4", arc4_key, Botan::DECRYPTION));
|
||||
|
||||
============================================================
|
||||
--- src/monotone.cc a25ecdd170a601db798b63a60add7681609a34c4
|
||||
+++ src/monotone.cc 2c5f57762bc687a90f75e732f39d2181fc50bd6d
|
||||
@@ -170,11 +170,16 @@ cpp_main(int argc, char ** argv)
|
||||
// versions, including all of the stable branch 1.8.x.
|
||||
E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), origin::system,
|
||||
F("this monotone binary does not work with Botan 1.9.x"));
|
||||
-#else
|
||||
+#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
E(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,7,22), origin::system,
|
||||
F("this monotone binary requires Botan 1.7.22 or newer"));
|
||||
E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), origin::system,
|
||||
F("this monotone binary does not work with Botan 1.9.x"));
|
||||
+#else
|
||||
+ E(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,9,11), origin::system,
|
||||
+ F("this monotone binary requires Botan 1.9.11 or newer"));
|
||||
+ E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,11,0), origin::system,
|
||||
+ F("this monotone binary does not work with Botan 1.11.x"));
|
||||
#endif
|
||||
|
||||
app_state app;
|
||||
============================================================
|
||||
--- src/packet.cc f61360ed2524fdf53411bd24d022a2a3c9e6e9c7
|
||||
+++ src/packet.cc 6f6739c4756933843a2d865dc6790de9013626b7
|
||||
@@ -156,8 +156,8 @@ namespace
|
||||
void validate_public_key_data(string const & name, string const & keydata) const
|
||||
{
|
||||
string decoded = decode_base64_as<string>(keydata, origin::user);
|
||||
- Botan::SecureVector<Botan::byte> key_block;
|
||||
- key_block.set(reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
|
||||
+ Botan::SecureVector<Botan::byte> key_block
|
||||
+ (reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());
|
||||
try
|
||||
{
|
||||
Botan::X509::load_key(key_block);
|
||||
@@ -175,7 +175,9 @@ namespace
|
||||
Botan::DataSource_Memory ds(decoded);
|
||||
try
|
||||
{
|
||||
-#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
|
||||
+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
+ Botan::PKCS8::load_key(ds, lazy_rng::get(), Dummy_UI());
|
||||
+#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)
|
||||
Botan::PKCS8::load_key(ds, lazy_rng::get(), string());
|
||||
#else
|
||||
Botan::PKCS8::load_key(ds, string());
|
||||
@@ -189,7 +191,11 @@ namespace
|
||||
}
|
||||
// since we do not want to prompt for a password to decode it finally,
|
||||
// we ignore all other exceptions
|
||||
+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
+ catch (Passphrase_Required) {}
|
||||
+#else
|
||||
catch (Botan::Invalid_Argument) {}
|
||||
+#endif
|
||||
}
|
||||
void validate_certname(string const & cn) const
|
||||
{
|
||||
@@ -460,8 +466,14 @@ read_packets(istream & in, packet_consum
|
||||
return count;
|
||||
}
|
||||
|
||||
+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
+std::string Dummy_UI::get_passphrase(const std::string&,
|
||||
+ const std::string&,
|
||||
+ Botan::User_Interface::UI_Result&) const {
|
||||
+ throw Passphrase_Required();
|
||||
+}
|
||||
+#endif
|
||||
|
||||
-
|
||||
// Local Variables:
|
||||
// mode: C++
|
||||
// fill-column: 76
|
||||
============================================================
|
||||
--- src/packet.hh 0a224e6e92f244e2c3e9a5cdb935eb8613d7e85b
|
||||
+++ src/packet.hh 6c7d90e0bd9abe1e2e97da8ed40808fe438ea34b
|
||||
@@ -84,8 +84,26 @@ size_t read_packets(std::istream & in, p
|
||||
|
||||
size_t read_packets(std::istream & in, packet_consumer & cons);
|
||||
|
||||
+#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
+// work around botan commit 2d09d7d0cd4bd0e7155d001dd65a4f29103b158c
|
||||
+#include <botan/ui.h>
|
||||
+class Dummy_UI : public Botan::User_Interface
|
||||
+{
|
||||
+public:
|
||||
+ virtual std::string get_passphrase(const std::string&,
|
||||
+ const std::string&,
|
||||
+ Botan::User_Interface::UI_Result&) const;
|
||||
+};
|
||||
+class Passphrase_Required : public Botan::Exception {
|
||||
+public:
|
||||
+ Passphrase_Required(const std::string& m = "Passphrase required") :
|
||||
+ Botan::Exception(m)
|
||||
+ {}
|
||||
+};
|
||||
#endif
|
||||
|
||||
+#endif
|
||||
+
|
||||
// Local Variables:
|
||||
// mode: C++
|
||||
// fill-column: 76
|
||||
============================================================
|
||||
--- src/sha1.cc 5e1aa972d7c7d66e06320b039989652b830dcd75
|
||||
+++ src/sha1.cc 42e48b22fd88b25e0d38d4f91e1f13f8a83c7120
|
||||
@@ -50,9 +50,12 @@ CMD_HIDDEN(benchmark_sha1, "benchmark_sh
|
||||
Botan::Default_Benchmark_Timer timer;
|
||||
std::map<std::string, double> results =
|
||||
Botan::algorithm_benchmark("SHA-1", milliseconds, timer, rng, af);
|
||||
+#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,11)
|
||||
+ std::map<std::string, double> results =
|
||||
+ Botan::algorithm_benchmark("SHA-1", milliseconds, rng, af);
|
||||
#else
|
||||
std::map<std::string, double> results =
|
||||
- Botan::algorithm_benchmark("SHA-1", milliseconds, rng, af);
|
||||
+ Botan::algorithm_benchmark("SHA-1", af, rng, milliseconds, 16);
|
||||
#endif
|
||||
|
||||
for(std::map<std::string, double>::const_iterator i = results.begin();
|
||||
============================================================
|
||||
--- src/ssh_agent.cc 6d188e7012a0b82f782563b09bbd7adf3f70cf75
|
||||
+++ src/ssh_agent.cc 4a0dcab873559e934e41c5f220b5434d35600d9b
|
||||
@@ -385,9 +385,9 @@ ssh_agent::has_key(const keypair & key)
|
||||
ssh_agent::has_key(const keypair & key)
|
||||
{
|
||||
//grab the monotone public key as an RSA_PublicKey
|
||||
- SecureVector<Botan::byte> pub_block;
|
||||
- pub_block.set(reinterpret_cast<Botan::byte const *>((key.pub)().data()),
|
||||
- (key.pub)().size());
|
||||
+ SecureVector<Botan::byte> pub_block
|
||||
+ (reinterpret_cast<Botan::byte const *>((key.pub)().data()),
|
||||
+ (key.pub)().size());
|
||||
L(FL("has_key: building %d-byte pub key") % pub_block.size());
|
||||
shared_ptr<X509_PublicKey> x509_key =
|
||||
shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));
|
||||
============================================================
|
||||
--- src/transforms.cc cdfb6854ef4992faba21074145f3c8269b845b11
|
||||
+++ src/transforms.cc 789e01bbff42020d04d8dba8f6b97588fbe4ca3d
|
||||
@@ -53,10 +53,10 @@ using Botan::Hash_Filter;
|
||||
// paradigm "must" be used. this program is intended for source code
|
||||
// control and I make no bones about it.
|
||||
|
||||
-NORETURN(static inline void error_in_transform(Botan::Exception & e));
|
||||
+NORETURN(static inline void error_in_transform(std::exception & e));
|
||||
|
||||
static inline void
|
||||
-error_in_transform(Botan::Exception & e, origin::type caused_by)
|
||||
+error_in_transform(std::exception & e, origin::type caused_by)
|
||||
{
|
||||
// these classes can all indicate data corruption
|
||||
if (typeid(e) == typeid(Botan::Encoding_Error)
|
||||
@@ -107,7 +107,7 @@ error_in_transform(Botan::Exception & e,
|
||||
pipe->process_msg(in); \
|
||||
out = pipe->read_all_as_string(Pipe::LAST_MESSAGE); \
|
||||
} \
|
||||
- catch (Botan::Exception & e) \
|
||||
+ catch (std::exception & e) \
|
||||
{ \
|
||||
pipe.reset(new Pipe(new T(carg))); \
|
||||
error_in_transform(e, made_from); \
|
||||
@@ -173,7 +173,7 @@ template<> string xform<Botan::Hex_Decod
|
||||
{
|
||||
throw Botan::Decoding_Error(string("invalid hex character '") + (char)c + "'");
|
||||
}
|
||||
- catch(Botan::Exception & e)
|
||||
+ catch(std::exception & e)
|
||||
{
|
||||
error_in_transform(e, made_from);
|
||||
}
|
||||
@@ -219,7 +219,7 @@ void pack(T const & in, base64< gzip<T>
|
||||
tmp = pipe->read_all_as_string(Pipe::LAST_MESSAGE);
|
||||
out = base64< gzip<T> >(tmp, in.made_from);
|
||||
}
|
||||
- catch (Botan::Exception & e)
|
||||
+ catch (std::exception & e)
|
||||
{
|
||||
pipe.reset(new Pipe(new Gzip_Compression,
|
||||
new Base64_Encoder));
|
||||
@@ -237,7 +237,7 @@ void unpack(base64< gzip<T> > const & in
|
||||
pipe->process_msg(in());
|
||||
out = T(pipe->read_all_as_string(Pipe::LAST_MESSAGE), in.made_from);
|
||||
}
|
||||
- catch (Botan::Exception & e)
|
||||
+ catch (std::exception & e)
|
||||
{
|
||||
pipe.reset(new Pipe(new Base64_Decoder,
|
||||
new Gzip_Decompression));
|
||||
@@ -264,7 +264,7 @@ calculate_ident(data const & dat,
|
||||
p->process_msg(dat());
|
||||
ident = id(p->read_all_as_string(Pipe::LAST_MESSAGE), dat.made_from);
|
||||
}
|
||||
- catch (Botan::Exception & e)
|
||||
+ catch (std::exception & e)
|
||||
{
|
||||
p.reset(new Pipe(new Hash_Filter("SHA-160")));
|
||||
error_in_transform(e, dat.made_from);
|
|
@ -0,0 +1,166 @@
|
|||
Revision: da62cad10eda55aa233ac124273f3db4f541137a
|
||||
Parent: 65bcb8cf8b32f68a5b48629b328f6d65979e58df
|
||||
Author: Thomas Moschny <thomas.moschny@gmx.de>
|
||||
Date: 07.05.2011 13:32:06
|
||||
Branch: net.venge.monotone
|
||||
|
||||
Changelog:
|
||||
|
||||
* src/rcs_file.cc: Rename struct "file_handle" to "rcs_file_handle"
|
||||
to avoid a name clash with a struct of same name defined by newer
|
||||
glibc's "fcntl.h". For aesthetic reasons, also rename struct
|
||||
"file_source".
|
||||
|
||||
References:
|
||||
https://code.monotone.ca/p/monotone/source/commit/da62cad10eda55aa233ac124273f3db4f541137a/
|
||||
https://bugs.gentoo.org/396651
|
||||
|
||||
============================================================
|
||||
--- src/rcs_file.cc 885b3fbe7b6cfed78816f0e57cd71d44616213c6
|
||||
+++ src/rcs_file.cc 03cf68912a4a708545ebce3d415c0e970ddead0b
|
||||
@@ -42,12 +42,12 @@ struct
|
||||
|
||||
#ifdef HAVE_MMAP
|
||||
struct
|
||||
-file_handle
|
||||
+rcs_file_handle
|
||||
{
|
||||
string const & filename;
|
||||
off_t length;
|
||||
int fd;
|
||||
- file_handle(string const & fn) :
|
||||
+ rcs_file_handle(string const & fn) :
|
||||
filename(fn),
|
||||
length(0),
|
||||
fd(-1)
|
||||
@@ -60,13 +60,13 @@ file_handle
|
||||
if (fd == -1)
|
||||
throw oops("open of " + filename + " failed");
|
||||
}
|
||||
- ~file_handle()
|
||||
+ ~rcs_file_handle()
|
||||
{
|
||||
if (close(fd) == -1)
|
||||
throw oops("close of " + filename + " failed");
|
||||
}
|
||||
};
|
||||
-struct file_source
|
||||
+struct rcs_file_source
|
||||
{
|
||||
string const & filename;
|
||||
int fd;
|
||||
@@ -91,7 +91,7 @@ struct file_source
|
||||
++pos;
|
||||
return good();
|
||||
}
|
||||
- file_source(string const & fn,
|
||||
+ rcs_file_source(string const & fn,
|
||||
int f,
|
||||
off_t len) :
|
||||
filename(fn),
|
||||
@@ -104,7 +104,7 @@ struct file_source
|
||||
if (mapping == MAP_FAILED)
|
||||
throw oops("mmap of " + filename + " failed");
|
||||
}
|
||||
- ~file_source()
|
||||
+ ~rcs_file_source()
|
||||
{
|
||||
if (munmap(mapping, length) == -1)
|
||||
throw oops("munmapping " + filename + " failed, after reading RCS file");
|
||||
@@ -112,12 +112,12 @@ struct
|
||||
};
|
||||
#elif defined(WIN32)
|
||||
struct
|
||||
-file_handle
|
||||
+rcs_file_handle
|
||||
{
|
||||
string const & filename;
|
||||
off_t length;
|
||||
HANDLE fd;
|
||||
- file_handle(string const & fn) :
|
||||
+ rcs_file_handle(string const & fn) :
|
||||
filename(fn),
|
||||
length(0),
|
||||
fd(NULL)
|
||||
@@ -134,7 +134,7 @@ file_handle
|
||||
if (fd == NULL)
|
||||
throw oops("open of " + filename + " failed");
|
||||
}
|
||||
- ~file_handle()
|
||||
+ ~rcs_file_handle()
|
||||
{
|
||||
if (CloseHandle(fd)==0)
|
||||
throw oops("close of " + filename + " failed");
|
||||
@@ -142,7 +142,7 @@ struct
|
||||
};
|
||||
|
||||
struct
|
||||
-file_source
|
||||
+rcs_file_source
|
||||
{
|
||||
string const & filename;
|
||||
HANDLE fd,map;
|
||||
@@ -167,7 +167,7 @@ file_source
|
||||
++pos;
|
||||
return good();
|
||||
}
|
||||
- file_source(string const & fn,
|
||||
+ rcs_file_source(string const & fn,
|
||||
HANDLE f,
|
||||
off_t len) :
|
||||
filename(fn),
|
||||
@@ -183,7 +183,7 @@ file_source
|
||||
if (mapping==NULL)
|
||||
throw oops("MapViewOfFile of " + filename + " failed");
|
||||
}
|
||||
- ~file_source()
|
||||
+ ~rcs_file_source()
|
||||
{
|
||||
if (UnmapViewOfFile(mapping)==0)
|
||||
throw oops("UnmapViewOfFile of " + filename + " failed");
|
||||
@@ -193,7 +193,7 @@ file_source
|
||||
};
|
||||
#else
|
||||
// no mmap at all
|
||||
-typedef istream file_source;
|
||||
+typedef istream rcs_file_source;
|
||||
#endif
|
||||
|
||||
typedef enum
|
||||
@@ -220,7 +220,7 @@ static token_type
|
||||
}
|
||||
|
||||
static token_type
|
||||
-get_token(file_source & ist,
|
||||
+get_token(rcs_file_source & ist,
|
||||
string & str,
|
||||
size_t & line,
|
||||
size_t & col)
|
||||
@@ -303,14 +303,14 @@ struct parser
|
||||
|
||||
struct parser
|
||||
{
|
||||
- file_source & ist;
|
||||
+ rcs_file_source & ist;
|
||||
rcs_file & r;
|
||||
string token;
|
||||
token_type ttype;
|
||||
|
||||
size_t line, col;
|
||||
|
||||
- parser(file_source & s,
|
||||
+ parser(rcs_file_source & s,
|
||||
rcs_file & r)
|
||||
: ist(s), r(r), line(1), col(1)
|
||||
{}
|
||||
@@ -489,8 +489,8 @@ parse_rcs_file(string const & filename,
|
||||
parse_rcs_file(string const & filename, rcs_file & r)
|
||||
{
|
||||
#if defined(HAVE_MMAP) || defined(WIN32)
|
||||
- file_handle handle(filename);
|
||||
- file_source ifs(filename, handle.fd, handle.length);
|
||||
+ rcs_file_handle handle(filename);
|
||||
+ rcs_file_source ifs(filename, handle.fd, handle.length);
|
||||
#else
|
||||
ifstream ifs(filename.c_str());
|
||||
ifs.unsetf(ios_base::skipws);
|
Loading…
Reference in a new issue