gentoo-overlay/mail-filter/spamassassin-fuzzyocr/spamassassin-fuzzyocr-3.6.0.ebuild

185 lines
5.3 KiB
Bash

# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/mail-filter/spamassassin-fuzzyocr/spamassassin-fuzzyocr-3.6.0.ebuild,v 1.3 2012/06/05 00:07:53 zmedico Exp $
EAPI=2
inherit perl-module eutils user
MY_P="${P#spamassassin-}"
DESCRIPTION="SpamAssassin plugin for performing Optical Character Recognition (OCR) on attached images"
HOMEPAGE="http://fuzzyocr.own-hero.net/"
SRC_URI="http://users.own-hero.net/~decoder/fuzzyocr/${MY_P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc x86"
IUSE="dbm gocr ocrad tesseract mysql logrotate amavis"
DEPEND="dev-lang/perl
dev-perl/Tie-Cache
>=mail-filter/spamassassin-3.2.0"
RDEPEND="${DEPEND}
gocr? ( >=app-text/gocr-0.43 )
ocrad? ( >=app-text/ocrad-0.14 )
tesseract? ( app-text/tesseract )
!gocr? ( !ocrad? ( !tesseract? ( >=app-text/ocrad-0.14 ) ) )
mysql? ( dev-perl/DBD-mysql dev-perl/DBI )
logrotate? ( app-admin/logrotate )
dbm? ( virtual/perl-DB_File dev-perl/MLDBM-Sync virtual/perl-Storable )
media-libs/netpbm[jpeg,png,tiff]
media-libs/giflib
dev-perl/String-Approx
virtual/perl-Time-HiRes
media-gfx/gifsicle"
# postgres? ( dev-perl/DBD-Pg )
S="${WORKDIR}/${MY_P/fuzzyocr/FuzzyOcr}"
pkg_setup() {
if ! use gocr && ! use ocrad && ! use tesseract ; then
ewarn You did not specify an OCR engine. They can be
ewarn enabled/disabled via the USE flags:
ewarn gocr ocrad tesseract
ewarn Defaulting to ocrad
fi
# create fuzzyocr group for logging and hashing
if use dbm || use logrotate ; then
use amavis || enewgroup fuzzyocr
fi
}
src_prepare() {
# Bug #174993
epatch "${FILESDIR}"/${P}-fix_falsepositives.patch
# Bug #273183
epatch "${FILESDIR}"/${P}-fix_tmpdir.patch
# If no ocrad USE flag, remove it from Fuzzyocr.scansets / jni
use ocrad || epatch "${FILESDIR}"/disableocrad.patch
# If tesseract USE flag is set, enable it in Fuzzyocr.scansets /jni
use tesseract && epatch "${FILESDIR}"/enabletesseract.patch
# If gocr USE flag is unset, enable disable gocr in Fuzzyocr.scansets /jni
use gocr || epatch "${FILESDIR}"/disablegocr.patch
# Apply PgSQL patchset if USE postgres /juan
#use postgres && epatch "${FILESDIR}"/postgresql.patch
}
src_install() {
# called to get ${VENDOR_LIB}
perlinfo
local plugin_dir=${VENDOR_LIB}/Mail/SpamAssassin/Plugin
insinto ${plugin_dir}
doins FuzzyOcr.pm
# Replace location of .pm file in config
sed -ie "s:FuzzyOcr.pm:${plugin_dir}/FuzzyOcr.pm:" FuzzyOcr.cf
# Enable logfile if logrotate
if use logrotate ; then
sed -ie "s:^#focr_verbose 3:focr_verbose 3:" FuzzyOcr.cf
sed -ie "s:^#focr_logfile /tmp/FuzzyOcr.log:focr_logfile /var/log/FuzzyOcr.log:" FuzzyOcr.cf
# Create the logfile with correct permissions /jni
if [ ! -e /var/log/FuzzyOcr.log ]; then
insinto /var/log
newins /dev/null FuzzyOcr.log
if use amavis ; then
fperms 600 /var/log/FuzzyOcr.log
fowners amavis:amavis /var/log/FuzzyOcr.log
else
fperms 660 /var/log/FuzzyOcr.log
fowners root:fuzzyocr /var/log/FuzzyOcr.log
fi
fi
diropts ""
dodir /etc/logrotate.d
insopts -m0644
insinto /etc/logrotate.d
newins "${FILESDIR}"/fuzzyocr.logrotate FuzzyOcr
fi
# Create needed dir for dbs and change FuzzyOcr.cf /jni
if use dbm ; then
dodir /var/lib/FuzzyOcr
keepdir /var/lib/FuzzyOcr
if use amavis ; then
fowners amavis:amavis /var/lib/FuzzyOcr
fperms 700 /var/lib/FuzzyOcr
else
fowners root:fuzzyocr /var/lib/FuzzyOcr
fperms 770 /var/lib/FuzzyOcr
fi
sed -ie "s:^#focr_digest_db /etc/mail/spamassassin/FuzzyOcr.hashdb:#focr_digest_db /var/lib/FuzzyOcr/FuzzyOcr.hashdb:" FuzzyOcr.cf
sed -ie "s:^#focr_db_hash /etc/mail/spamassassin/FuzzyOcr.db:#focr_db_hash /var/lib/FuzzyOcr/FuzzyOcr.db:" FuzzyOcr.cf
sed -ie "s:^#focr_db_safe /etc/mail/spamassassin/FuzzyOcr.safe.db:#focr_db_safe /var/lib/FuzzyOcr/FuzzyOcr.safe.db:" FuzzyOcr.cf
if ! use amavis ; then
insinto /var/lib/FuzzyOcr/
local hash_files="FuzzyOcr.hashdb FuzzyOcr.db FuzzyOcr.safe.db"
for file in ${hash_files}; do
if [ ! -e /var/lib/FuzzyOcr/${file} ]; then
newins /dev/null ${file}
fperms 660 /var/lib/FuzzyOcr/${file}
fowners root:fuzzyocr /var/lib/FuzzyOcr/${file}
fi
done
fi
fi
insinto /etc/mail/spamassassin/
doins FuzzyOcr.cf
doins FuzzyOcr.words
doins FuzzyOcr.scansets
doins FuzzyOcr.preps
insinto ${VENDOR_LIB}/FuzzyOcr
doins FuzzyOcr/*
docinto samples
dodoc samples/*
}
pkg_postinst() {
elog "You need to restart spamassassin (as root) before this plugin will work:"
elog "/etc/init.d/spamd restart"
echo
if use dbm || use logrotate ; then
local files=""
if use dbm ; then
files="/var/lib/FuzzyOcr"
fi
if use logrotate ; then
if [ -z ${files} ] ; then
files="/var/log/FuzzyOcr.log"
else
files="${files} /var/log/FuzzyOcr.log"
fi
fi
if use amavis ; then
elog "All permissions are set for the user amavis!"
else
elog "Permissions have been set for the fuzzyocr group, to enable"
elog "logging or hashing add any required users to this group"
fi
echo
ewarn "If you run spamassassin as another user, please make sure to"
ewarn "change permissions on" ${files/ / and }
echo
fi
}