summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYixun Lan <dlan@gentoo.org>2014-04-08 23:27:37 +0000
committerYixun Lan <dlan@gentoo.org>2014-04-08 23:27:37 +0000
commit8b21b46db54dfad099937d73b9015572271d4178 (patch)
treec3cf6f74aa3c049797dde5e1163f09e9825db423 /app-i18n
parentVersion bump (1.9 and 1.10) (diff)
downloadgentoo-2-8b21b46db54dfad099937d73b9015572271d4178.tar.gz
gentoo-2-8b21b46db54dfad099937d73b9015572271d4178.tar.bz2
gentoo-2-8b21b46db54dfad099937d73b9015572271d4178.zip
backport patchhes for <gcc-4.8, thanks @YeLee
(Portage version: 2.2.8/cvs/Linux x86_64, signed Manifest commit with key 0xAABEFD55)
Diffstat (limited to 'app-i18n')
-rw-r--r--app-i18n/librime/ChangeLog9
-rw-r--r--app-i18n/librime/files/librime-1.1-BOOST_NO_SCOPED_ENUMS.patch224
-rw-r--r--app-i18n/librime/files/librime-1.1-gcc53613.patch367
-rw-r--r--app-i18n/librime/librime-1.1-r1.ebuild45
4 files changed, 644 insertions, 1 deletions
diff --git a/app-i18n/librime/ChangeLog b/app-i18n/librime/ChangeLog
index 22891fb6e534..40f6a9d43cbe 100644
--- a/app-i18n/librime/ChangeLog
+++ b/app-i18n/librime/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for app-i18n/librime
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-i18n/librime/ChangeLog,v 1.14 2014/01/12 12:48:09 dlan Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-i18n/librime/ChangeLog,v 1.15 2014/04/08 23:27:37 dlan Exp $
+
+*librime-1.1-r1 (08 Apr 2014)
+
+ 08 Apr 2014; Yixun Lan <dlan@gentoo.org> +librime-1.1-r1.ebuild,
+ +files/librime-1.1-BOOST_NO_SCOPED_ENUMS.patch,
+ +files/librime-1.1-gcc53613.patch:
+ backport patchhes for <gcc-4.8, thanks @YeLee
12 Jan 2014; Yixun Lan <dlan@gentoo.org> metadata.xml:
update metadata.xml, correct email address
diff --git a/app-i18n/librime/files/librime-1.1-BOOST_NO_SCOPED_ENUMS.patch b/app-i18n/librime/files/librime-1.1-BOOST_NO_SCOPED_ENUMS.patch
new file mode 100644
index 000000000000..3f33efdcdda6
--- /dev/null
+++ b/app-i18n/librime/files/librime-1.1-BOOST_NO_SCOPED_ENUMS.patch
@@ -0,0 +1,224 @@
+Index: librime-1.1git20140306/include/rime/lever/customizer.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/lever/customizer.h
++++ librime-1.1git20140306/include/rime/lever/customizer.h
+@@ -8,6 +8,9 @@
+ #define RIME_CUSTOMIZER_H_
+
+ #include <string>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #define BOOST_NO_CXX11_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>;
+
+Index: librime-1.1git20140306/include/rime/lever/switcher_settings.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/lever/switcher_settings.h
++++ librime-1.1git20140306/include/rime/lever/switcher_settings.h
+@@ -9,6 +9,9 @@
+
+ #include <string>
+ #include <vector>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include "custom_settings.h"
+
+Index: librime-1.1git20140306/include/rime/lever/user_dict_manager.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/lever/user_dict_manager.h
++++ librime-1.1git20140306/include/rime/lever/user_dict_manager.h
+@@ -9,6 +9,9 @@
+
+ #include <string>
+ #include <vector>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+
+ namespace rime {
+Index: librime-1.1git20140306/src/core_module.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/core_module.cc
++++ librime-1.1git20140306/src/core_module.cc
+@@ -5,6 +5,9 @@
+ // 2013-10-17 GONG Chen <chen.sst@gmail.com>
+ //
+
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include <rime_api.h>
+ #include <rime/common.h>
+Index: librime-1.1git20140306/src/dict/db.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/dict/db.cc
++++ librime-1.1git20140306/src/dict/db.cc
+@@ -5,6 +5,9 @@
+ // 2011-11-02 GONG Chen <chen.sst@gmail.com>
+ //
+ #include <boost/algorithm/string.hpp>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include <rime_version.h>
+ #include <rime/common.h>
+Index: librime-1.1git20140306/src/dict/dict_compiler.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/dict/dict_compiler.cc
++++ librime-1.1git20140306/src/dict/dict_compiler.cc
+@@ -7,6 +7,9 @@
+ #include <fstream>
+ #include <map>
+ #include <set>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include <rime/algo/algebra.h>
+ #include <rime/algo/utilities.h>
+Index: librime-1.1git20140306/src/dict/dictionary.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/dict/dictionary.cc
++++ librime-1.1git20140306/src/dict/dictionary.cc
+@@ -5,6 +5,9 @@
+ // 2011-07-05 GONG Chen <chen.sst@gmail.com>
+ //
+ #include <utility>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include <rime/common.h>
+ #include <rime/schema.h>
+Index: librime-1.1git20140306/src/dict/mapped_file.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/dict/mapped_file.cc
++++ librime-1.1git20140306/src/dict/mapped_file.cc
+@@ -7,6 +7,9 @@
+ // 2011-06-30 GONG Chen <chen.sst@gmail.com>
+ //
+ #include <fstream>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include <boost/interprocess/file_mapping.hpp>
+ #include <boost/interprocess/mapped_region.hpp>
+Index: librime-1.1git20140306/src/dict/preset_vocabulary.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/dict/preset_vocabulary.cc
++++ librime-1.1git20140306/src/dict/preset_vocabulary.cc
+@@ -4,6 +4,9 @@
+ //
+ // 2011-11-27 GONG Chen <chen.sst@gmail.com>
+ //
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include <boost/lexical_cast.hpp>
+ #include <utf8.h>
+Index: librime-1.1git20140306/src/dict/tree_db.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/dict/tree_db.cc
++++ librime-1.1git20140306/src/dict/tree_db.cc
+@@ -4,6 +4,9 @@
+ //
+ // 2011-11-02 GONG Chen <chen.sst@gmail.com>
+ //
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #if defined(_MSC_VER)
+ #pragma warning(disable: 4244)
+Index: librime-1.1git20140306/src/gear/simplifier.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/gear/simplifier.cc
++++ librime-1.1git20140306/src/gear/simplifier.cc
+@@ -7,6 +7,9 @@
+ #include <string>
+ #include <vector>
+ #include <boost/algorithm/string.hpp>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include <opencc/opencc.h>
+ #include <stdint.h>
+Index: librime-1.1git20140306/src/lever/custom_settings.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/lever/custom_settings.cc
++++ librime-1.1git20140306/src/lever/custom_settings.cc
+@@ -5,6 +5,9 @@
+ // 2012-02-26 GONG Chen <chen.sst@gmail.com>
+ //
+ #include <boost/algorithm/string.hpp>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include <rime/config.h>
+ #include <rime/deployer.h>
+Index: librime-1.1git20140306/src/lever/deployment_tasks.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/lever/deployment_tasks.cc
++++ librime-1.1git20140306/src/lever/deployment_tasks.cc
+@@ -5,6 +5,9 @@
+ // 2011-12-10 GONG Chen <chen.sst@gmail.com>
+ //
+ #include <boost/algorithm/string.hpp>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #define BOOST_NO_CXX11_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include <boost/uuid/random_generator.hpp>
+Index: librime-1.1git20140306/src/lever/switcher_settings.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/lever/switcher_settings.cc
++++ librime-1.1git20140306/src/lever/switcher_settings.cc
+@@ -6,6 +6,9 @@
+ //
+ #include <utility>
+ #include <boost/algorithm/string.hpp>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include <rime/config.h>
+ #include <rime/deployer.h>
+Index: librime-1.1git20140306/src/lever/user_dict_manager.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/lever/user_dict_manager.cc
++++ librime-1.1git20140306/src/lever/user_dict_manager.cc
+@@ -6,6 +6,9 @@
+ //
+ #include <fstream>
+ #include <boost/algorithm/string.hpp>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include <boost/scope_exit.hpp>
+ #include <rime/common.h>
+Index: librime-1.1git20140306/src/lever/userdb_recovery_task.cc
+===================================================================
+--- librime-1.1git20140306.orig/src/lever/userdb_recovery_task.cc
++++ librime-1.1git20140306/src/lever/userdb_recovery_task.cc
+@@ -5,6 +5,9 @@
+ // 2013-04-22 GONG Chen <chen.sst@gmail.com>
+ //
+ #include <boost/algorithm/string.hpp>
++#ifndef BOOST_NO_SCOPED_ENUMS
++#define BOOST_NO_SCOPED_ENUMS
++#endif // BOOST_NO_SCOPED_ENUMS
+ #include <boost/filesystem.hpp>
+ #include <boost/scope_exit.hpp>
+ #include <rime/deployer.h>
diff --git a/app-i18n/librime/files/librime-1.1-gcc53613.patch b/app-i18n/librime/files/librime-1.1-gcc53613.patch
new file mode 100644
index 000000000000..28dfb1ec36b5
--- /dev/null
+++ b/app-i18n/librime/files/librime-1.1-gcc53613.patch
@@ -0,0 +1,367 @@
+Index: librime-1.1git20140306/include/rime/algo/calculus.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/algo/calculus.h
++++ librime-1.1git20140306/include/rime/algo/calculus.h
+@@ -22,11 +22,12 @@ class Calculation {
+ using Factory = Calculation* (const std::vector<std::string>& args);
+
+ Calculation() = default;
+- virtual ~Calculation() = default;
++ virtual ~Calculation();
+ virtual bool Apply(Spelling* spelling) = 0;
+ virtual bool addition() { return true; }
+ virtual bool deletion() { return true; }
+ };
++inline Calculation::~Calculation() = default;
+
+ class Calculus {
+ public:
+Index: librime-1.1git20140306/include/rime/dict/db.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/dict/db.h
++++ librime-1.1git20140306/include/rime/dict/db.h
+@@ -18,7 +18,7 @@ class DbAccessor {
+ DbAccessor() = default;
+ explicit DbAccessor(const std::string& prefix)
+ : prefix_(prefix) {}
+- virtual ~DbAccessor() = default;
++ virtual ~DbAccessor();
+
+ virtual bool Reset() = 0;
+ virtual bool Jump(const std::string &key) = 0;
+@@ -30,11 +30,12 @@ class DbAccessor {
+
+ std::string prefix_;
+ };
++inline DbAccessor::~DbAccessor() = default;
+
+ class Db : public Class<Db, const std::string&> {
+ public:
+ explicit Db(const std::string& name);
+- virtual ~Db() = default;
++ virtual ~Db();
+
+ bool Exists() const;
+ bool Remove();
+@@ -72,11 +73,12 @@ class Db : public Class<Db, const std::s
+ bool readonly_ = false;
+ bool disabled_ = false;
+ };
++inline Db::~Db() = default;
+
+ class Transactional {
+ public:
+ Transactional() = default;
+- virtual ~Transactional() = default;
++ virtual ~Transactional();
+ virtual bool BeginTransaction() { return false; }
+ virtual bool AbortTransaction() { return false; }
+ virtual bool CommitTransaction() { return false; }
+@@ -84,12 +86,14 @@ class Transactional {
+ protected:
+ bool in_transaction_ = false;
+ };
++inline Transactional::~Transactional() = default;
+
+ class Recoverable {
+ public:
+- virtual ~Recoverable() = default;
++ virtual ~Recoverable();
+ virtual bool Recover() = 0;
+ };
++inline Recoverable::~Recoverable() = default;
+
+ } // namespace rime
+
+Index: librime-1.1git20140306/include/rime/algo/encoder.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/algo/encoder.h
++++ librime-1.1git20140306/include/rime/algo/encoder.h
+@@ -24,7 +24,7 @@ class RawCode : public std::vector<std::
+ class PhraseCollector {
+ public:
+ PhraseCollector() = default;
+- virtual ~PhraseCollector() = default;
++ virtual ~PhraseCollector();
+
+ virtual void CreateEntry(const std::string& phrase,
+ const std::string& code_str,
+@@ -33,13 +33,14 @@ class PhraseCollector {
+ virtual bool TranslateWord(const std::string& word,
+ std::vector<std::string>* code) = 0;
+ };
++inline PhraseCollector::~PhraseCollector() = default;
+
+ class Config;
+
+ class Encoder {
+ public:
+ Encoder(PhraseCollector* collector) : collector_(collector) {}
+- virtual ~Encoder() = default;
++ virtual ~Encoder();
+
+ virtual bool LoadSettings(Config* config) {
+ return false;
+@@ -53,7 +54,7 @@ class Encoder {
+ protected:
+ PhraseCollector* collector_;
+ };
+-
++inline Encoder::~Encoder() = default;
+ // Aa : code at index 0 for character at index 0
+ // Az : code at index -1 for character at index 0
+ // Za : code at index 0 for character at index -1
+Index: librime-1.1git20140306/include/rime/candidate.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/candidate.h
++++ librime-1.1git20140306/include/rime/candidate.h
+@@ -21,7 +21,7 @@ class Candidate {
+ size_t end,
+ double quality = 0.)
+ : type_(type), start_(start), end_(end), quality_(quality) {}
+- virtual ~Candidate() = default;
++ virtual ~Candidate();
+
+ static shared_ptr<Candidate>
+ GetGenuineCandidate(const shared_ptr<Candidate>& cand);
+@@ -53,6 +53,7 @@ class Candidate {
+ size_t end_ = 0;
+ double quality_ = 0.;
+ };
++inline Candidate::~Candidate() = default;
+
+ using CandidateList = std::vector<shared_ptr<Candidate>>;
+
+Index: librime-1.1git20140306/include/rime/component.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/component.h
++++ librime-1.1git20140306/include/rime/component.h
+@@ -16,8 +16,9 @@ namespace rime {
+ class ComponentBase {
+ public:
+ ComponentBase() = default;
+- virtual ~ComponentBase() = default;
++ virtual ~ComponentBase();
+ };
++inline ComponentBase::~ComponentBase() = default;
+
+ template <class T, class Arg>
+ struct Class {
+Index: librime-1.1git20140306/include/rime/config.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/config.h
++++ librime-1.1git20140306/include/rime/config.h
+@@ -22,7 +22,7 @@ class ConfigItem {
+ enum ValueType { kNull, kScalar, kList, kMap };
+
+ ConfigItem() = default; // null
+- virtual ~ConfigItem() = default;
++ virtual ~ConfigItem();
+
+ ValueType type() const { return type_; }
+
+@@ -31,6 +31,7 @@ class ConfigItem {
+
+ ValueType type_ = kNull;
+ };
++inline ConfigItem::~ConfigItem() = default;
+
+ using ConfigItemPtr = shared_ptr<ConfigItem>;
+
+Index: librime-1.1git20140306/include/rime/deployer.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/deployer.h
++++ librime-1.1git20140306/include/rime/deployer.h
+@@ -25,10 +25,11 @@ using TaskInitializer = boost::any;
+ class DeploymentTask : public Class<DeploymentTask, TaskInitializer> {
+ public:
+ DeploymentTask() = default;
+- virtual ~DeploymentTask() = default;
++ virtual ~DeploymentTask();
+
+ virtual bool Run(Deployer* deployer) = 0;
+ };
++inline DeploymentTask::~DeploymentTask() = default;
+
+ class Deployer : public Messenger {
+ public:
+Index: librime-1.1git20140306/include/rime/filter.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/filter.h
++++ librime-1.1git20140306/include/rime/filter.h
+@@ -22,7 +22,7 @@ class Filter : public Class<Filter, cons
+ public:
+ explicit Filter(const Ticket& ticket)
+ : engine_(ticket.engine), name_space_(ticket.name_space) {}
+- virtual ~Filter() = default;
++ virtual ~Filter();
+
+ virtual void Apply(CandidateList* recruited,
+ CandidateList* candidates) = 0;
+@@ -35,6 +35,7 @@ class Filter : public Class<Filter, cons
+ Engine* engine_;
+ std::string name_space_;
+ };
++inline Filter::~Filter() = default;
+
+ } // namespace rime
+
+Index: librime-1.1git20140306/include/rime/formatter.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/formatter.h
++++ librime-1.1git20140306/include/rime/formatter.h
+@@ -20,7 +20,7 @@ class Formatter : public Class<Formatter
+ public:
+ Formatter(const Ticket& ticket)
+ : engine_(ticket.engine), name_space_(ticket.name_space) {}
+- virtual ~Formatter() = default;
++ virtual ~Formatter();
+
+ virtual void Format(std::string* text) = 0;
+
+@@ -28,6 +28,7 @@ class Formatter : public Class<Formatter
+ Engine* engine_;
+ std::string name_space_;
+ };
++inline Formatter::~Formatter() = default;
+
+ } // namespace rime
+
+Index: librime-1.1git20140306/include/rime/lever/custom_settings.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/lever/custom_settings.h
++++ librime-1.1git20140306/include/rime/lever/custom_settings.h
+@@ -19,7 +19,7 @@ class CustomSettings {
+ CustomSettings(Deployer* deployer,
+ const std::string& config_id,
+ const std::string& generator_id);
+- virtual ~CustomSettings() = default;
++ virtual ~CustomSettings();
+
+ virtual bool Load();
+ virtual bool Save();
+@@ -39,6 +39,7 @@ class CustomSettings {
+ Config config_;
+ Config custom_config_;
+ };
++inline CustomSettings::~CustomSettings() = default;
+
+ } // namespace rime
+
+Index: librime-1.1git20140306/include/rime/processor.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/processor.h
++++ librime-1.1git20140306/include/rime/processor.h
+@@ -25,7 +25,7 @@ class Processor : public Class<Processor
+ public:
+ explicit Processor(const Ticket& ticket)
+ : engine_(ticket.engine), name_space_(ticket.name_space) {}
+- virtual ~Processor() = default;
++ virtual ~Processor();
+
+ virtual ProcessResult ProcessKeyEvent(const KeyEvent& key_event) {
+ return kNoop;
+@@ -35,6 +35,7 @@ class Processor : public Class<Processor
+ Engine* engine_;
+ std::string name_space_;
+ };
++inline Processor::~Processor() = default;
+
+ } // namespace rime
+
+Index: librime-1.1git20140306/include/rime/segmentor.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/segmentor.h
++++ librime-1.1git20140306/include/rime/segmentor.h
+@@ -19,7 +19,7 @@ class Segmentor : public Class<Segmentor
+ public:
+ explicit Segmentor(const Ticket& ticket)
+ : engine_(ticket.engine), name_space_(ticket.name_space) {}
+- virtual ~Segmentor() = default;
++ virtual ~Segmentor();
+
+ virtual bool Proceed(Segmentation* segmentation) = 0;
+
+@@ -27,6 +27,7 @@ class Segmentor : public Class<Segmentor
+ Engine* engine_;
+ std::string name_space_;
+ };
++inline Segmentor::~Segmentor() = default;
+
+ } // namespace rime
+
+Index: librime-1.1git20140306/include/rime/translation.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/translation.h
++++ librime-1.1git20140306/include/rime/translation.h
+@@ -19,7 +19,7 @@ namespace rime {
+ class Translation {
+ public:
+ Translation() = default;
+- virtual ~Translation() = default;
++ virtual ~Translation();
+
+ // A translation may contain multiple results, looks
+ // something like a generator of candidates.
+@@ -40,6 +40,7 @@ class Translation {
+ private:
+ bool exhausted_ = false;
+ };
++inline Translation::~Translation() = default;
+
+ class UniqueTranslation : public Translation {
+ public:
+Index: librime-1.1git20140306/include/rime/translator.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/translator.h
++++ librime-1.1git20140306/include/rime/translator.h
+@@ -23,7 +23,7 @@ class Translator : public Class<Translat
+ public:
+ explicit Translator(const Ticket& ticket)
+ : engine_(ticket.engine), name_space_(ticket.name_space) {}
+- virtual ~Translator() = default;
++ virtual ~Translator();
+
+ virtual shared_ptr<Translation> Query(const std::string& input,
+ const Segment& segment,
+@@ -33,6 +33,7 @@ class Translator : public Class<Translat
+ Engine* engine_;
+ std::string name_space_;
+ };
++inline Translator::~Translator() = default;
+
+ } // namespace rime
+
+Index: librime-1.1git20140306/include/rime/dict/db_utils.h
+===================================================================
+--- librime-1.1git20140306.orig/include/rime/dict/db_utils.h
++++ librime-1.1git20140306/include/rime/dict/db_utils.h
+@@ -14,17 +14,18 @@ namespace rime {
+
+ class Sink {
+ public:
+- virtual ~Sink() = default;
++ virtual ~Sink();
+ virtual bool MetaPut(const std::string& key, const std::string& value) = 0;
+ virtual bool Put(const std::string& key, const std::string& value) = 0;
+
+ template <class SourceType>
+ int operator<< (SourceType& source);
+ };
++inline Sink::~Sink() = default;
+
+ class Source {
+ public:
+- virtual ~Source() = default;
++ virtual ~Source();
+ virtual bool MetaGet(std::string* key, std::string* value) = 0;
+ virtual bool Get(std::string* key, std::string* value) = 0;
+
+@@ -33,6 +34,7 @@ class Source {
+
+ int Dump(Sink* sink);
+ };
++inline Source::~Source() = default;
+
+ template <class SourceType>
+ int Sink::operator<< (SourceType& source) {
diff --git a/app-i18n/librime/librime-1.1-r1.ebuild b/app-i18n/librime/librime-1.1-r1.ebuild
new file mode 100644
index 000000000000..322bf66e34c2
--- /dev/null
+++ b/app-i18n/librime/librime-1.1-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-i18n/librime/librime-1.1-r1.ebuild,v 1.1 2014/04/08 23:27:37 dlan Exp $
+
+EAPI=5
+
+inherit cmake-utils multilib versionator toolchain-funcs
+
+DESCRIPTION="Rime Input Method Engine library"
+HOMEPAGE="http://code.google.com/p/rimeime/"
+SRC_URI="http://rimeime.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="static-libs test"
+
+RDEPEND="app-i18n/opencc
+ dev-cpp/glog
+ >=dev-cpp/yaml-cpp-0.5.0
+ dev-db/kyotocabinet
+ >=dev-libs/boost-1.46.0[threads(+)]
+ sys-libs/zlib
+ x11-proto/xproto"
+DEPEND="${RDEPEND}
+ test? ( dev-cpp/gtest )"
+
+S="${WORKDIR}/${PN}"
+
+#bug 496080, backport patch for <gcc-4.8
+PATCHES=(
+ "${FILESDIR}/${P}-BOOST_NO_SCOPED_ENUMS.patch"
+ "${FILESDIR}/${P}-gcc53613.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ $(cmake-utils_use_build static-libs STATIC)
+ -DBUILD_DATA=OFF
+ -DBUILD_SEPARATE_LIBS=OFF
+ $(cmake-utils_use_build test TEST)
+ -DLIB_INSTALL_DIR=/usr/$(get_libdir)
+ )
+ cmake-utils_src_configure
+}