diff options
| author | Johannes Huber <johu@gmx.de> | 2011-08-19 14:55:22 +0200 |
|---|---|---|
| committer | Johannes Huber <johu@gmx.de> | 2011-08-19 14:55:22 +0200 |
| commit | 2780f3d1a0f2bb00f07c11f41ea91f76feef9e93 (patch) | |
| tree | 49647d825789b1ed0f5d8668afb704ce7c07cb39 /app-misc/strigi/files | |
| parent | cd4837c803d615b6f67f90e05a57fe368134c637 (diff) | |
| download | kde-2780f3d1a0f2bb00f07c11f41ea91f76feef9e93.tar.gz kde-2780f3d1a0f2bb00f07c11f41ea91f76feef9e93.tar.bz2 kde-2780f3d1a0f2bb00f07c11f41ea91f76feef9e93.zip | |
[app-misc/strigi] Fix build with clucene-2.3
Diffstat (limited to 'app-misc/strigi/files')
| -rw-r--r-- | app-misc/strigi/files/strigi-0.7.5-clucene23.patch | 207 | ||||
| -rw-r--r-- | app-misc/strigi/files/strigi-0.7.5-ffmpeg.patch | 166 |
2 files changed, 373 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 00000000000..0316671d328 --- /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 00000000000..ee1bfc02602 --- /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); |
