public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Johannes Huber" <johu@gmx.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/kde:master commit in: app-misc/strigi/, app-misc/strigi/files/
Date: Fri, 19 Aug 2011 15:37:36 +0000 (UTC)	[thread overview]
Message-ID: <2780f3d1a0f2bb00f07c11f41ea91f76feef9e93.j0hu@gentoo> (raw)

commit:     2780f3d1a0f2bb00f07c11f41ea91f76feef9e93
Author:     Johannes Huber <johu <AT> gmx <DOT> de>
AuthorDate: Fri Aug 19 12:55:22 2011 +0000
Commit:     Johannes Huber <johu <AT> gmx <DOT> de>
CommitDate: Fri Aug 19 12:55:22 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/kde.git;a=commit;h=2780f3d1

[app-misc/strigi] Fix build with clucene-2.3

---
 app-misc/strigi/files/strigi-0.7.5-clucene23.patch |  207 ++++++++++++++++++++
 app-misc/strigi/files/strigi-0.7.5-ffmpeg.patch    |  166 ++++++++++++++++
 app-misc/strigi/strigi-0.7.5-r3.ebuild             |   94 +++++++++
 3 files changed, 467 insertions(+), 0 deletions(-)

diff --git a/app-misc/strigi/files/strigi-0.7.5-clucene23.patch b/app-misc/strigi/files/strigi-0.7.5-clucene23.patch
new file mode 100644
index 0000000..0316671
--- /dev/null
+++ b/app-misc/strigi/files/strigi-0.7.5-clucene23.patch
@@ -0,0 +1,207 @@
+diff -upr strigi-0.7.5.orig/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp strigi-0.7.5/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp
+--- strigi-0.7.5.orig/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp	2011-06-02 11:29:26.000000000 +0200
++++ strigi-0.7.5/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp	2011-08-18 02:43:46.000000000 +0200
+@@ -56,7 +56,6 @@ using lucene::document::DocumentFieldEnu
+ using Strigi::IndexedDocument;
+ using Strigi::Variant;
+ using Strigi::FieldRegister;
+-typedef boost::shared_ptr<lucene::index::Term> LuceneTerm;
+ 
+ using namespace std;
+ 
+@@ -101,9 +100,9 @@ public:
+     CLuceneIndexReader& reader;
+     Private(CLuceneIndexReader& r) :reader(r) {}
+ 
+-    static LuceneTerm createTerm(const wchar_t* name, const string& value);
+-    static LuceneTerm createKeywordTerm(const wchar_t* name, const string& value);
+-    static LuceneTerm createWildCardTerm(const wchar_t* name, const string& value);
++    static Term* createTerm(const wchar_t* name, const string& value);
++    static Term* createKeywordTerm(const wchar_t* name, const string& value);
++    static Term* createWildCardTerm(const wchar_t* name, const string& value);
+     Query* createQuery(const Strigi::Query& query);
+     Query* createSimpleQuery(const Strigi::Query& query);
+     static Query* createSingleFieldQuery(const string& field,
+@@ -187,12 +186,12 @@ CLuceneIndexReader::mapId(const char* id
+ }
+ #endif
+ 
+-LuceneTerm
++Term*
+ CLuceneIndexReader::Private::createWildCardTerm(const wchar_t* name,
+         const string& value) {
+-    return LuceneTerm(_CLNEW Term(name, utf8toucs2(value).c_str()));
++    return _CLNEW Term(name, utf8toucs2(value).c_str());
+ }
+-LuceneTerm
++Term*
+ CLuceneIndexReader::Private::createTerm(const wchar_t* name,
+         const string& value) {
+     wstring v = utf8toucs2(value);
+@@ -206,16 +205,15 @@ CLuceneIndexReader::Private::createTerm(
+     } else {
+         tv = v.c_str();
+     }
+-    LuceneTerm t(_CLNEW Term(name, tv));
++    Term* t = _CLNEW Term(name, tv);
+     _CLDELETE(ts);
+     return t;
+ }
+-LuceneTerm
++Term*
+ CLuceneIndexReader::Private::createKeywordTerm(const wchar_t* name,
+         const string& value) {
+     wstring v = utf8toucs2(value);
+-    LuceneTerm t(_CLNEW Term(name, v.c_str()));
+-    return t;
++    return _CLNEW Term(name, v.c_str());
+ }
+ BooleanQuery*
+ CLuceneIndexReader::Private::createBooleanQuery(const Strigi::Query& query) {
+@@ -249,25 +247,24 @@ CLuceneIndexReader::Private::createSingl
+         const Strigi::Query& query) {
+     wstring fieldname = mapId(field.c_str());
+     Query* q;
+-    LuceneTerm t;
+-    LuceneTerm nullTerm;
++    Term* t;
+     const string& val = query.term().string();
+     switch (query.type()) {
+     case Strigi::Query::LessThan:
+           t = createTerm(fieldname.c_str(), val.c_str());
+-          q = _CLNEW RangeQuery(nullTerm, t, false);
++          q = _CLNEW RangeQuery(0, t, false);
+           break;
+     case Strigi::Query::LessThanEquals:
+           t = createTerm(fieldname.c_str(), query.term().string());
+-          q = _CLNEW RangeQuery(nullTerm, t, true);
++          q = _CLNEW RangeQuery(0, t, true);
+           break;
+     case Strigi::Query::GreaterThan:
+           t = createTerm(fieldname.c_str(), query.term().string());
+-          q = _CLNEW RangeQuery(t, nullTerm, false);
++          q = _CLNEW RangeQuery(t, 0, false);
+           break;
+     case Strigi::Query::GreaterThanEquals:
+           t = createTerm(fieldname.c_str(), query.term().string());
+-          q = _CLNEW RangeQuery(t, nullTerm, true);
++          q = _CLNEW RangeQuery(t, 0, true);
+           break;
+     case Strigi::Query::Keyword:
+           t = createKeywordTerm(fieldname.c_str(), query.term().string());
+@@ -282,6 +279,7 @@ CLuceneIndexReader::Private::createSingl
+                q = _CLNEW TermQuery(t);
+           }
+     }
++    _CLDECDELETE(t);
+     return q;
+ }
+ Query*
+@@ -584,12 +582,13 @@ CLuceneIndexReader::documentId(const str
+     if (reader == NULL) return -1;
+     int64_t id = -1;
+ 
+-    LuceneTerm term(_CLNEW Term(mapId(Private::systemlocation()), utf8toucs2( uri ).c_str()));
++    Term* term = _CLNEW Term(mapId(Private::systemlocation()), utf8toucs2( uri ).c_str());
+     TermDocs* docs = reader->termDocs(term);
+     if (docs->next()) {
+         id = docs->doc();
+     }
+     _CLDELETE(docs);
++    _CLDECDELETE(term);
+ 
+     if (id != -1 && reader->isDeleted((int32_t)id)) {
+         id = -1;
+@@ -770,12 +769,13 @@ CLuceneIndexReader::keywords(const strin
+     const wchar_t* prefixtext = prefix.c_str();
+     string::size_type prefixLen = prefix.length();
+     vector<string>::const_iterator i;
+-    LuceneTerm lastTerm;
++    Term* lastTerm;
+     for (i = fn.begin(); i != fn.end() && s.size() << max; ++i) {
+          wstring fieldname(utf8toucs2(*i));
+-         LuceneTerm term(_CLNEW Term(fieldname.c_str(), prefix.c_str()));
++         Term* term = _CLNEW Term(fieldname.c_str(), prefix.c_str());
+          TermEnum* enumerator = reader->terms(term);
+          do {
++             _CLDECDELETE(lastTerm);
+              lastTerm = enumerator->term();
+              if (lastTerm) {
+                  if (prefixLen > lastTerm->textLength()
+@@ -786,7 +786,9 @@ CLuceneIndexReader::keywords(const strin
+                  s.insert(lastTerm->text());
+              }
+          } while (enumerator->next() && s.size() < max);
++         _CLDECDELETE(term);
+     }
++    _CLDECDELETE(lastTerm);
+ 
+     k.reserve(s.size());
+     set<wstring>::const_iterator j;
+diff -upr strigi-0.7.5.orig/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexwriter.cpp strigi-0.7.5/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexwriter.cpp
+--- strigi-0.7.5.orig/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexwriter.cpp	2011-06-02 11:29:26.000000000 +0200
++++ strigi-0.7.5/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexwriter.cpp	2011-08-18 02:43:46.000000000 +0200
+@@ -45,7 +45,6 @@ using lucene::util::BitSet;
+ using lucene::util::Reader;
+ using namespace std;
+ using namespace Strigi;
+-typedef boost::shared_ptr<lucene::index::Term> LuceneTerm;
+ 
+ struct CLuceneDocData {
+     lucene::document::Document doc;
+@@ -219,18 +218,19 @@ void
+ CLuceneIndexWriter::deleteEntry(const string& entry, lucene::index::IndexWriter* writer, lucene::index::IndexReader* reader) {
+     wstring path(utf8toucs2(entry));
+ {
+-    LuceneTerm t(_CLNEW Term(systemlocation(), path.c_str()));
++    Term* t = _CLNEW Term(systemlocation(), path.c_str());
+     writer->deleteDocuments(t);
++    _CLDECDELETE(t);
+ }
+ {
+-    LuceneTerm t(_CLNEW Term(parentlocation(), path.c_str()));
++    Term* t = _CLNEW Term(parentlocation(), path.c_str());
+     writer->deleteDocuments(t);
+-
++    _CLDECDELETE(t);
+ }
+ {
+     // delete all deeper nested files
+     wstring v = utf8toucs2(entry+"/");
+-    LuceneTerm t(_CLNEW Term(parentlocation(), v.c_str()));
++    Term* t(_CLNEW Term(parentlocation(), v.c_str()));
+     PrefixFilter* filter = _CLNEW PrefixFilter(t);
+     BitSet* b = filter->bits(reader);
+     _CLDELETE(filter);
+@@ -241,6 +241,7 @@ CLuceneIndexWriter::deleteEntry(const st
+         }
+     }
+     _CLDELETE(b);
++    _CLDECDELETE(t);
+ }
+ }
+ void
+diff -upr strigi-0.7.5.orig/libstreamanalyzer/plugins/indexers/clucenengindexer/indexdump/indexdump.cpp strigi-0.7.5/libstreamanalyzer/plugins/indexers/clucenengindexer/indexdump/indexdump.cpp
+--- strigi-0.7.5.orig/libstreamanalyzer/plugins/indexers/clucenengindexer/indexdump/indexdump.cpp	2011-06-02 11:29:26.000000000 +0200
++++ strigi-0.7.5/libstreamanalyzer/plugins/indexers/clucenengindexer/indexdump/indexdump.cpp	2011-08-18 02:43:46.000000000 +0200
+@@ -40,7 +40,6 @@ using lucene::search::HitCollector;
+ using lucene::util::BitSet;
+ using lucene::document::DocumentFieldEnumeration;
+ using lucene::index::IndexReader;
+-typedef boost::shared_ptr<lucene::index::Term> LuceneTerm;
+ 
+ std::string
+ t2a(const TCHAR* t) {
+@@ -68,10 +67,11 @@ indexdump(const char* dir) {
+         }
+     }
+     TermEnum* terms = indexreader->terms();
+-    LuceneTerm t;
++    Term* t = 0;
+     while (terms->next()) {
+         t = terms->term();
+         printf("%s: %s\n", t2a(t->field()).c_str(), t2a(t->text()).c_str());
++        _CLDECDELETE(t);
+     }
+ }
+ int

diff --git a/app-misc/strigi/files/strigi-0.7.5-ffmpeg.patch b/app-misc/strigi/files/strigi-0.7.5-ffmpeg.patch
new file mode 100644
index 0000000..ee1bfc0
--- /dev/null
+++ b/app-misc/strigi/files/strigi-0.7.5-ffmpeg.patch
@@ -0,0 +1,166 @@
+diff -ruN strigi-0.7.5.orig/libstreamanalyzer/plugins/endplugins/ffmpegendanalyzer.cpp strigi-0.7.5/libstreamanalyzer/plugins/endplugins/ffmpegendanalyzer.cpp
+--- strigi-0.7.5.orig/libstreamanalyzer/plugins/endplugins/ffmpegendanalyzer.cpp	2011-06-02 11:29:26.000000000 +0200
++++ strigi-0.7.5/libstreamanalyzer/plugins/endplugins/ffmpegendanalyzer.cpp	2011-08-02 23:25:04.936181179 +0200
+@@ -1,6 +1,7 @@
+ /* This file is part of Strigi Desktop Search
+  *
+  * Copyright (C) 2010 Evgeny Egorochkin <phreedom.stdin@gmail.com>
++ * Copyright (C) 2011 Tirtha Chatterjee <tirtha.p.chatterjee@gmail.com>
+  *
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Library General Public
+@@ -348,7 +349,7 @@
+     if ((size = in->size()) >= 0)
+       ar.addValue(factory->durationProperty, (uint32_t)(size/(fc->bit_rate/8)));
+   }
+-  if(fc->nb_streams==1 && fc->streams[0]->codec->codec_type == CODEC_TYPE_AUDIO) {
++  if(fc->nb_streams==1 && fc->streams[0]->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
+     ar.addValue(factory->typeProperty, NFO "Audio");
+     ar.addValue(factory->typeProperty, NMM_DRAFT "MusicPiece");
+   } else {
+@@ -359,7 +360,7 @@
+     const AVStream &stream = *fc->streams[i];
+     const AVCodecContext &codec = *stream.codec;
+     
+-    if (codec.codec_type == CODEC_TYPE_AUDIO || codec.codec_type == CODEC_TYPE_VIDEO) {
++    if (codec.codec_type == AVMEDIA_TYPE_AUDIO || codec.codec_type == AVMEDIA_TYPE_VIDEO) {
+       const string streamuri = ar.newAnonymousUri();
+       ar.addValue(factory->hasPartProperty, streamuri);
+       ar.addTriplet(streamuri, partOfPropertyName, ar.path());
+@@ -370,8 +371,16 @@
+         outs << (stream.duration * stream.time_base.num / stream.time_base.den);
+         ar.addTriplet(streamuri, durationPropertyName,outs.str());
+       }
+-      if (size_t len = strlen(stream.language)) {
+-        ar.addTriplet(streamuri, languagePropertyName, string(stream.language, len));
++
++      //FIXME we must stop using the deprecated fuction av_metadata_get and use
++      // av_dict_get once we are able to detect the version of FFMpeg being used
++      // using version macros. same goes for all occurences of this function.
++      AVMetadataTag *entry = av_metadata_get(stream.metadata, "language", NULL, 0);
++      if (entry != NULL) {
++        const char *languageValue = entry->value;
++        if (size_t len = strlen(languageValue)) {
++          ar.addTriplet(streamuri, languagePropertyName, string(languageValue, len));
++        }
+       }
+       const AVCodec *p = avcodec_find_decoder(codec.codec_id);
+       if (p) {
+@@ -408,7 +417,7 @@
+         ar.addTriplet(streamuri, bitratePropertyName, outs.str());
+       }
+ 
+-      if (codec.codec_type == CODEC_TYPE_AUDIO) {
++      if (codec.codec_type == AVMEDIA_TYPE_AUDIO) {
+         
+         ar.addTriplet(streamuri, typePropertyName, audioClassName);
+         if (codec.channels) {
+@@ -458,36 +467,83 @@
+   }
+ 
+   // Tags
+-  
+-  if (int32_t len = strlen(fc->title)) {
+-    ar.addValue(factory->titleProperty, string(fc->title, len) );
++
++  AVMetadataTag *entry = av_metadata_get(fc->metadata, "title", NULL, 0);
++  if (entry != NULL)
++  {
++    const char *titleValue = entry->value;
++    if (int32_t len = strlen(titleValue)) {
++      ar.addValue(factory->titleProperty, string(titleValue, len) );
++    }
++  }
++
++  entry = av_metadata_get(fc->metadata, "author", NULL, 0);
++  if (entry != NULL)
++  {
++    const char *authorValue = entry->value;
++    if (int32_t len = strlen(authorValue)) {
++      const string creatoruri = ar.newAnonymousUri();
++      ar.addValue(factory->creatorProperty, creatoruri);
++      ar.addTriplet(creatoruri, typePropertyName, contactClassName);
++      ar.addTriplet(creatoruri, fullnamePropertyName, string(authorValue, len) );
++    }
++  }
++
++  entry = av_metadata_get(fc->metadata, "copyright", NULL, 0);
++  if (entry != NULL)
++  {
++    const char *copyrightValue = entry->value;
++    if (int32_t len = strlen(copyrightValue)) {
++      ar.addValue(factory->copyrightProperty, string(copyrightValue, len) );
++    }
+   }
+-  if (int32_t len = strlen(fc->author)) {
+-    const string creatoruri = ar.newAnonymousUri();
+-    ar.addValue(factory->creatorProperty, creatoruri);
+-    ar.addTriplet(creatoruri, typePropertyName, contactClassName);
+-    ar.addTriplet(creatoruri, fullnamePropertyName, string(fc->author, len) );
+-  }
+-  if (int32_t len = strlen(fc->copyright)) {
+-    ar.addValue(factory->copyrightProperty, string(fc->copyright, len) );
+-  }
+-  if (int32_t len = strlen(fc->comment)) {
+-    ar.addValue(factory->commentProperty, string(fc->comment, len) );
+-  }
+-  if (int32_t len = strlen(fc->album)) {
+-    const string album = ar.newAnonymousUri();
+-    ar.addValue(factory->albumProperty, album);
++
++  entry = av_metadata_get(fc->metadata, "comment", NULL, 0);
++  if (entry != NULL)
++  {
++    const char *commentValue = entry->value;
++    if (int32_t len = strlen(commentValue)) {
++      ar.addValue(factory->commentProperty, string(commentValue, len) );
++    }
++  }
++
++  entry = av_metadata_get(fc->metadata, "album", NULL, 0);
++  if (entry != NULL)
++  {
++    const char *albumValue = entry->value;
++    if (int32_t len = strlen(albumValue)) {
++      const string album = ar.newAnonymousUri();
++      ar.addValue(factory->albumProperty, album);
+     ar.addTriplet(album, typePropertyName, albumClassName);
+-    ar.addTriplet(album, titlePropertyName, string(fc->album, len) );
++    ar.addTriplet(album, titlePropertyName, string(albumValue, len) );
++    }
+   }
+-  if (int32_t len = strlen(fc->genre)) {
+-    ar.addValue(factory->genreProperty, string(fc->genre, len) );
++
++  entry = av_metadata_get(fc->metadata, "genre", NULL, 0);
++  if (entry != NULL)
++  {
++    const char *genreValue = entry->value;
++    if (int32_t len = strlen(genreValue)) {
++      ar.addValue(factory->genreProperty, string(genreValue, len) );
++    }
+   }
+-  if (fc->track) {
+-    ar.addValue(factory->trackProperty, fc->track);
++
++  entry = av_metadata_get(fc->metadata, "track", NULL, 0);
++  if (entry != NULL)
++  {
++    const char *trackValue = entry->value;
++    if (int32_t len = strlen(trackValue)) {
++      ar.addValue(factory->trackProperty, string(trackValue, len) );
++    }
+   }
+-  if (fc->year) {
+-    ar.addValue(factory->createdProperty, fc->year);
++
++  entry = av_metadata_get(fc->metadata, "year", NULL, 0);
++  if (entry != NULL)
++  {
++    const char *yearValue = entry->value;
++    if (int32_t len = strlen(yearValue)) {
++      ar.addValue(factory->createdProperty, string(yearValue, len) );
++    }
+   }
+ 
+   av_close_input_stream(fc);

diff --git a/app-misc/strigi/strigi-0.7.5-r3.ebuild b/app-misc/strigi/strigi-0.7.5-r3.ebuild
new file mode 100644
index 0000000..b80205a
--- /dev/null
+++ b/app-misc/strigi/strigi-0.7.5-r3.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=4
+
+if [[ "${PV}" != "9999" ]]; then
+	SRC_URI="http://www.vandenoever.info/software/${PN}/${P}.tar.bz2"
+	KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+else
+	EGIT_REPO_URI="git://anongit.kde.org/strigi"
+	GIT_ECLASS="git-2"
+	EGIT_HAS_SUBMODULES="true"
+	KEYWORDS=""
+fi
+
+inherit cmake-utils ${GIT_ECLASS}
+
+DESCRIPTION="Fast crawling desktop search engine with Qt4 GUI"
+HOMEPAGE="http://strigi.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="clucene +dbus debug exif fam ffmpeg hyperestraier inotify log +qt4 test"
+
+COMMONDEPEND="
+	app-arch/bzip2:0
+	dev-libs/libxml2:2
+	sys-libs/zlib:0
+	virtual/libiconv
+	clucene? ( >=dev-cpp/clucene-0.9.21[-debug] )
+	dbus? (
+		sys-apps/dbus
+		qt4? ( x11-libs/qt-dbus:4 )
+	)
+	exif? ( >=media-gfx/exiv2-0.17 )
+	fam? ( virtual/fam )
+	ffmpeg? ( virtual/ffmpeg )
+	hyperestraier? ( app-text/hyperestraier )
+	log? ( >=dev-libs/log4cxx-0.10.0 )
+	qt4? (
+		x11-libs/qt-core:4
+		x11-libs/qt-gui:4
+	)
+"
+DEPEND="${COMMONDEPEND}
+	test? ( dev-util/cppunit )"
+RDEPEND="${COMMONDEPEND}"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-0.7.5-no-qt4.patch"
+	"${FILESDIR}/${PN}-0.7.5-ffmpeg.patch"
+	"${FILESDIR}/${PN}-0.7.5-clucene23.patch"
+)
+
+src_configure() {
+	# Enabled: POLLING (only reliable way to check for files changed.)
+	# Disabled: xine - recommended upstream to keep it this way
+	mycmakeargs=(
+		-DENABLE_POLLING=ON
+		-DFORCE_DEPS=ON
+		-DENABLE_CPPUNIT=OFF
+		-DENABLE_REGENERATEXSD=OFF
+		-DENABLE_XINE=OFF
+		$(cmake-utils_use_enable clucene)
+		$(cmake-utils_use_enable dbus)
+		$(cmake-utils_use_enable exif EXIV2)
+		$(cmake-utils_use_enable fam)
+		$(cmake-utils_use_enable ffmpeg)
+		$(cmake-utils_use_enable hyperestraier)
+		$(cmake-utils_use_enable inotify)
+		$(cmake-utils_use_enable log LOG4CXX)
+		$(cmake-utils_use_enable qt4)
+		$(cmake-utils_use_enable test CPPUNIT)
+	)
+
+	if use qt4; then
+		mycmakeargs+=(-DENABLE_DBUS=ON)
+	fi
+
+	cmake-utils_src_configure
+}
+
+pkg_postinst() {
+	if ! use clucene && ! use hyperestraier; then
+		echo
+		elog "Because you didn't enable either of the available backends:"
+		elog "clucene or hyperestraier, strigi may not be functional."
+		elog "If you intend to use standalone strigi indexer (not needed for KDE),"
+		elog "be sure to reinstall app-misc/strigi with either clucene (recommended)"
+		elog "or hyperestraier (unreliable) USE flag enabled."
+		echo
+	fi
+}



             reply	other threads:[~2011-08-19 15:37 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-19 15:37 Johannes Huber [this message]
  -- strict thread matches above, loose matches on Subject: below --
2013-02-25 12:07 [gentoo-commits] proj/kde:master commit in: app-misc/strigi/, app-misc/strigi/files/ Michael Palimaka
2012-11-05  3:14 Patrick Lauer
2012-10-30 13:39 Michael Palimaka
2011-10-02 10:03 Johannes Huber
2011-09-25 19:12 Andreas Hüttel
2011-07-13 22:49 Johannes Huber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2780f3d1a0f2bb00f07c11f41ea91f76feef9e93.j0hu@gentoo \
    --to=johu@gmx.de \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox