deb packaging: fix for jessie

This commit is contained in:
Jean-Francois Dockes 2021-01-16 11:54:45 +01:00
parent 91cc912808
commit f15d6564c6
4 changed files with 275 additions and 0 deletions

View File

@ -0,0 +1,114 @@
Source: recoll
Section: x11
Priority: optional
Maintainer: Jean-Francois Dockes <jfd@recoll.org>
Build-Depends: bison,
debhelper (>= 9),
dh-python,
dpkg-dev (>= 1.16.1~),
libaspell-dev,
libchm-dev,
libqt5webkit5-dev,
libx11-dev,
libxapian-dev (>= 1.2.0),
libxslt1-dev,
libz-dev,
pkg-config,
python-all-dev (>= 2.6.6-3~),
python-setuptools,
python3-all-dev,
python3-setuptools,
qtbase5-dev
X-Python3-Version: >= 3.4
Vcs-Git: https://salsa.debian.org/debian/recoll.git
Vcs-Browser: https://salsa.debian.org/debian/recoll
Homepage: https://www.lesbonscomptes.com/recoll
Standards-Version: 4.2.1
Package: recoll
Architecture: all
Depends: recollcmd, recollgui, ${misc:Depends}
Description: Personal full text search package
This package is a personal full text search package is based on a very strong
backend (Xapian), for which it provides an easy to use and feature-rich
interface.
.
Features:
* Qt-based GUI.
* Supports the following document types (and their compressed versions)
- Natively: text, html, OpenOffice files, excel, ppt, maildir and
mailbox (Mozilla and IceDove mail) with attachments, pidgin log files
- With external helpers: pdf (pdftotext), postscript (ghostscript), msword
(antiword), rtf (unrtf). And others...
* Powerful query facilities, with boolean searches, phrases, filter on file
types and directory tree.
* Support for multiple charsets, Internal processing and storage uses Unicode
UTF-8.
* Stemming performed at query time (can switch stemming language after
indexing).
* Easy installation. No database daemon, web server or exotic language
necessary.
* The indexer can run either continuously or in batch.
Package: recollcmd
Architecture: any
Breaks: recoll (<< 1.23.7-2)
Replaces: recoll (<< 1.23.7-2)
Depends: python3, ${misc:Depends}, ${shlibs:Depends}
Recommends: antiword,
aspell,
groff,
libimage-exiftool-perl,
poppler-utils,
python3-lxml,
python3-recoll,
python3-six,
python3-mutagen,
python3-rarfile,
unrtf,
unzip,
xdg-utils
Suggests: ghostscript,
libinotifytools0,
untex,
wv
Description: Command line programs for recoll
This package supports indexing and command line querying.
Package: recollgui
Architecture: any
Breaks: recoll (<< 1.23.7-2)
Replaces: recoll (<< 1.23.7-2)
Depends: recollcmd (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
Description: GUI program and elements for recoll
Main recoll GUI for configuring, controlling and querying recoll indexes.
Package: python-recoll
Architecture: any
Section: python
Depends: python,
recollcmd (= ${binary:Version}),
${misc:Depends},
${python:Depends},
${shlibs:Depends}
Description: Python extension for recoll
Personal full text search package which is based on a very strong backend
(Xapian), for which it provides an easy to use and feature-rich interface.
.
This package provides Python extension module for recoll which can be use to
extend recoll such as an Ubuntu Unity Lens.
Package: python3-recoll
Architecture: any
Section: python
Depends: python3,
recollcmd (= ${binary:Version}),
${misc:Depends},
${python3:Depends},
${shlibs:Depends}
Description: Python extension for recoll (Python3)
Personal full text search package which is based on a very strong backend
(Xapian), for which it provides an easy to use and feature-rich interface.
.
This package provides Python3 extension module for recoll which can be use to
extend recoll such as an Ubuntu Unity Lens.

View File

@ -0,0 +1,101 @@
diff --git a/internfile/mh_mbox.cpp b/srcinternfile/mh_mbox.cpp
index 2a0918cf..92ad7e23 100644
--- a/internfile/mh_mbox.cpp
+++ b/internfile/mh_mbox.cpp
@@ -27,6 +27,7 @@
#include <map>
#include <mutex>
#include <fstream>
+#include <memory>
#include "cstr.h"
#include "mimehandler.h"
@@ -285,7 +286,7 @@ public:
Internal(MimeHandlerMbox *p) : pthis(p) {}
std::string fn; // File name
std::string ipath;
- ifstream instream;
+ std::unique_ptr<ifstream> instream;
int msgnum{0}; // Current message number in folder. Starts at 1
int64_t lineno{0}; // debug
int64_t fsize{0};
@@ -321,7 +322,6 @@ void MimeHandlerMbox::clear_impl()
{
m->fn.erase();
m->ipath.erase();
- m->instream = ifstream();
m->msgnum = 0;
m->lineno = 0;
m->fsize = 0;
@@ -339,8 +339,9 @@ bool MimeHandlerMbox::set_document_file_impl(const string&, const string &fn)
LOGDEB("MimeHandlerMbox::set_document_file(" << fn << ")\n");
clear_impl();
m->fn = fn;
- m->instream = ifstream(fn.c_str(), std::ifstream::binary);
- if (!m->instream.good()) {
+ m->instream = std::unique_ptr<ifstream>(
+ new ifstream(fn.c_str(), std::ifstream::binary));
+ if (!m->instream->good()) {
LOGSYSERR("MimeHandlerMail::set_document_file", "ifstream", fn);
return false;
}
@@ -389,13 +390,13 @@ bool MimeHandlerMbox::Internal::tryUseCache(int mtarg)
fsize)) < 0) {
goto out;
}
- instream.seekg(off);
- if (!instream.good()) {
+ instream->seekg(off);
+ if (!instream->good()) {
LOGSYSERR("tryUseCache", "seekg", "");
goto out;
}
- getline(instream, line, '\n');
- if (!instream.good()) {
+ getline(*instream, line, '\n');
+ if (!instream->good()) {
LOGSYSERR("tryUseCache", "getline", "");
goto out;
}
@@ -404,7 +405,7 @@ bool MimeHandlerMbox::Internal::tryUseCache(int mtarg)
if ((fromregex(line) ||
((quirks & MBOXQUIRK_TBIRD) && minifromregex(line))) ) {
LOGDEB0("MimeHandlerMbox: Cache: From_ Ok\n");
- instream.seekg(off);
+ instream->seekg(off);
msgnum = mtarg -1;
cachefound = true;
} else {
@@ -414,7 +415,7 @@ bool MimeHandlerMbox::Internal::tryUseCache(int mtarg)
out:
if (!cachefound) {
// No cached result: scan.
- instream.seekg(0);
+ instream->seekg(0);
msgnum = 0;
}
return cachefound;
@@ -422,7 +423,7 @@ out:
bool MimeHandlerMbox::next_document()
{
- if (!m->instream.good()) {
+ if (!m->instream->good()) {
LOGERR("MimeHandlerMbox::next_document: not open\n");
return false;
}
@@ -458,10 +459,10 @@ bool MimeHandlerMbox::next_document()
msgtxt.erase();
string line;
for (;;) {
- message_end = m->instream.tellg();
- getline(m->instream, line, '\n');
- if (!m->instream.good()) {
- ifstream::iostate st = m->instream.rdstate();
+ message_end = m->instream->tellg();
+ getline(*m->instream, line, '\n');
+ if (!m->instream->good()) {
+ ifstream::iostate st = m->instream->rdstate();
if (st & std::ifstream::eofbit) {
LOGDEB0("MimeHandlerMbox:next: eof at " << message_end << endl);
} else {

View File

@ -0,0 +1 @@
mbox-use-streamptr-for-jessie.diff

View File

@ -0,0 +1,59 @@
#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# Setting the following on jessie results in a -fpie flag in the
# python module links, and failure due to missing symbols
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
build3vers := $(shell py3versions -sv)
#build qt5 UI
export QT_SELECT := qt5
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
NJOBS := -j $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
# main packaging script based on dh7 syntax
%:
dh $@ --parallel --with python2 --with python3 --with autotools-dev
override_dh_auto_configure:
dh_auto_configure -- --enable-recollq --enable-xadump
build3vers := $(shell py3versions -sv)
override_dh_auto_install:
dh_auto_install
(cd python/recoll; libdir=/usr/lib/$${DEB_BUILD_MULTIARCH} python2 \
./setup.py install \
--install-layout=deb \
--prefix=/usr \
--root=$(CURDIR)/debian/tmp/usr )
set -e && for i in $(build3vers); do \
(cd python/recoll; libdir=/usr/lib/$${DEB_BUILD_MULTIARCH} python$$i \
./setup.py install \
--install-layout=deb \
--prefix=/usr \
--root=$(CURDIR)/debian/tmp/ ) ; \
done
(cd python/pychm; python2 ./setup.py install \
--install-layout=deb \
--prefix=/usr \
--root=$(CURDIR)/debian/tmp/ )
set -e && for i in $(build3vers); do \
(cd python/pychm; python$$i ./setup.py install \
--install-layout=deb \
--prefix=/usr \
--root=$(CURDIR)/debian/tmp/ ) ; \
done
find $(CURDIR) -type f -name '*.la' -exec rm -f '{}' \;
find $(CURDIR) -type f -name '*.pyc' -exec rm -f '{}' \;
rm -rf $(CURDIR)/debian/tmp/usr/lib/python*/*/*/__pycache__