summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-misc/hylafaxplus
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-misc/hylafaxplus')
-rw-r--r--net-misc/hylafaxplus/Manifest2
-rw-r--r--net-misc/hylafaxplus/files/hylafax-cryptglibc.patch98
-rw-r--r--net-misc/hylafaxplus/files/hylafaxplus-conf29
-rw-r--r--net-misc/hylafaxplus/files/hylafaxplus-init176
-rw-r--r--net-misc/hylafaxplus/files/ldconfig-patch10
-rw-r--r--net-misc/hylafaxplus/hylafaxplus-5.5.4-r1.ebuild176
-rw-r--r--net-misc/hylafaxplus/hylafaxplus-5.5.5.ebuild176
-rw-r--r--net-misc/hylafaxplus/metadata.xml21
8 files changed, 688 insertions, 0 deletions
diff --git a/net-misc/hylafaxplus/Manifest b/net-misc/hylafaxplus/Manifest
new file mode 100644
index 000000000000..22395a9b4048
--- /dev/null
+++ b/net-misc/hylafaxplus/Manifest
@@ -0,0 +1,2 @@
+DIST hylafax-5.5.4.tar.gz 1347860 SHA256 699ea9e05a251c0f120d753c3dab2ef347b6bb8fe362dac8ff3e4ece0fdac3ff SHA512 c26c722bf9261ffa154979e015c2cfed982caffd8c7663f471e369d05544eb24edb0e70c7f06d02b77bf71956ae7a242a48f31a6567785acd8707be3b6946161 WHIRLPOOL 779cbc292065867317a4d4fc73725acfc1c4d39b0cab6b2339a9303e91488180430d2d87f4fb52869daa0b1343a7a4b700fbf5e711288409372b4d08fbf514ce
+DIST hylafax-5.5.5.tar.gz 1353495 SHA256 2916fb7ed6141dd6433336ee3ec4f9d93183d1142d1ebbecf696c646348e1f12 SHA512 ee6225ae044c567093103f35c30d848db757636c1d8db78e8f7cb43eb01ea34ab229a81ca4175e2bf30d3c87b598d5b5797b7d92b0dc852bf4b69c697baca8cf WHIRLPOOL e0e387a60abe242011a88178000b91eb93a22363deb7df925e70f9a8293a55db79c859b89dd4d4ac8520c1f62f652edfcad1fbb9cb1be429e1b5765e7572bf23
diff --git a/net-misc/hylafaxplus/files/hylafax-cryptglibc.patch b/net-misc/hylafaxplus/files/hylafax-cryptglibc.patch
new file mode 100644
index 000000000000..dbfc8bac5393
--- /dev/null
+++ b/net-misc/hylafaxplus/files/hylafax-cryptglibc.patch
@@ -0,0 +1,98 @@
+diff -urN hylafax-5.5.4/hfaxd/Login.c++ hylafax-5.5.4-libc217/hfaxd/Login.c++
+--- hylafax-5.5.4/hfaxd/Login.c++ 2013-08-07 01:23:35.000000000 +0200
++++ hylafax-5.5.4-libc217/hfaxd/Login.c++ 2013-11-13 12:56:02.000000000 +0100
+@@ -30,9 +30,6 @@
+ #include <ctype.h>
+ #include <fcntl.h>
+ #include <pwd.h>
+-#if HAS_CRYPT_H
+-#include <crypt.h>
+-#endif
+
+ void
+ HylaFAXServer::loginRefused(const char* why)
+@@ -434,7 +431,7 @@
+ /*
+ * Check hosts.hfaxd first, then PAM, and last, LDAP
+ */
+- if (pass[0] == '\0' || !(strcmp(crypt(pass, passWd), passWd) == 0 ||
++ if (pass[0] == '\0' || !(strcmp(Sys::crypt(pass, passWd), passWd) == 0 ||
+ pamCheck(the_user, pass) ||
+ ldapCheck(the_user,pass)))
+ {
+@@ -513,7 +510,7 @@
+ {
+ fxAssert(IS(LOGGEDIN), "ADMIN command permitted when not logged in");
+ // NB: null adminWd is permitted
+- if ((strcmp(crypt(pass, adminWd), adminWd) != 0) && !pamIsAdmin()) {
++ if ((strcmp(Sys::crypt(pass, adminWd), adminWd) != 0) && !pamIsAdmin()) {
+ if (++adminAttempts >= maxAdminAttempts) {
+ reply(530, "Password incorrect (closing connection).");
+ logNotice("Repeated admin failures from %s [%s]"
+diff -urN hylafax-5.5.4/hfaxd/SNPPServer.c++ hylafax-5.5.4-libc217/hfaxd/SNPPServer.c++
+--- hylafax-5.5.4/hfaxd/SNPPServer.c++ 2013-08-07 01:23:35.000000000 +0200
++++ hylafax-5.5.4-libc217/hfaxd/SNPPServer.c++ 2013-11-13 12:55:42.000000000 +0100
+@@ -36,9 +36,6 @@
+ #include "RE.h"
+
+ #include <ctype.h>
+-#if HAS_CRYPT_H
+-#include <crypt.h>
+-#endif
+
+ extern "C" {
+ #include <netdb.h>
+@@ -1003,7 +1000,7 @@
+
+ if (checkUser(loginID)) {
+ if (passWd != "") {
+- if (pass[0] == '\0' || !(streq(crypt(pass, passWd), passWd) || pamCheck(the_user, pass))) {
++ if (pass[0] == '\0' || !(streq(Sys::crypt(pass, passWd), passWd) || pamCheck(the_user, pass))) {
+ if (++loginAttempts >= maxLoginAttempts) {
+ reply(421, "Login incorrect (closing connection).");
+ logNotice("Repeated SNPP login failures for user %s from %s [%s]"
+diff -urN hylafax-5.5.4/hfaxd/User.c++ hylafax-5.5.4-libc217/hfaxd/User.c++
+--- hylafax-5.5.4/hfaxd/User.c++ 2013-08-07 01:23:35.000000000 +0200
++++ hylafax-5.5.4-libc217/hfaxd/User.c++ 2013-11-13 12:55:19.000000000 +0100
+@@ -30,9 +30,6 @@
+
+ #include <ctype.h>
+ #include <pwd.h>
+-#if HAS_CRYPT_H
+-#include <crypt.h>
+-#endif
+ #include <math.h>
+
+ #ifndef CHAR_BIT
+@@ -374,7 +371,7 @@
+ #else
+ to64(&salt[0], random(), 2);
+ #endif
+- result = crypt(pass, salt);
++ result = Sys::crypt(pass, salt);
+ return (true);
+ }
+
+diff -urN hylafax-5.5.4/util/Sys.h hylafax-5.5.4-libc217/util/Sys.h
+--- hylafax-5.5.4/util/Sys.h 2013-08-07 01:23:35.000000000 +0200
++++ hylafax-5.5.4-libc217/util/Sys.h 2013-11-13 12:56:26.000000000 +0100
+@@ -44,6 +44,10 @@
+ #include <osfcn.h>
+ #endif
+
++#if HAS_CRYPT_H
++#include <crypt.h>
++#endif
++
+ /*
+ * Wrapper functions for C library calls.
+ *
+@@ -140,5 +144,8 @@
+ { return ::fopen(filename, mode); }
+
+ static int getOpenMax();
++
++ static const char* crypt(const char* key, const char* salt)
++ { const char* enc = ::crypt(key, salt); return enc ? enc : ""; }
+ };
+ #endif /* _Sys_ */
diff --git a/net-misc/hylafaxplus/files/hylafaxplus-conf b/net-misc/hylafaxplus/files/hylafaxplus-conf
new file mode 100644
index 000000000000..911a59db4078
--- /dev/null
+++ b/net-misc/hylafaxplus/files/hylafaxplus-conf
@@ -0,0 +1,29 @@
+# Spool directory for HylaFAX
+spooldir="/var/spool/fax"
+
+# Faxq program path
+faxq="/usr/sbin/faxq"
+
+# hfaxd program path
+hfaxd="/usr/sbin/hfaxd"
+
+# faxgetty program path
+faxgetty="/usr/sbin/faxgetty"
+
+# Port of the hfaxd daemon for new protocol
+faxport=hylafax
+
+# Address used by hfaxd as binding address.
+faxbind="127.0.0.1"
+
+# Port of the hfaxd daemon for SNPP protocol
+snppport=444
+
+# Port of the hfaxd daemon for old protocol
+oldprotoport=4557
+
+# newproto | oldproto | snpp | any
+mode="newproto"
+
+# Directory where the pidfiles of HylaFAX are saved.
+piddir="/var/run"
diff --git a/net-misc/hylafaxplus/files/hylafaxplus-init b/net-misc/hylafaxplus/files/hylafaxplus-init
new file mode 100644
index 000000000000..47c16fdff2f2
--- /dev/null
+++ b/net-misc/hylafaxplus/files/hylafaxplus-init
@@ -0,0 +1,176 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Author Geaaru
+# Distributed under the terms of the GNU General Public License v2
+
+opts="zap"
+
+depend() {
+ use lo
+}
+
+checkconfig() {
+ ebegin "Check hylafax server configuration..."
+
+ if [ x$spooldir == x ] ; then
+ eerror "No spooldir directory defined"
+ return 1
+ else
+ SPOOL=$spooldir
+ einfo "Use spool directory $SPOOL"
+ fi
+
+ if [ x$mode == x ] ; then
+ eerror "No mode defined"
+ return 1
+ fi
+
+ if [ ! -f $SPOOL/etc/setup.cache ] ; then
+ eerror "No $SPOOL/etc/setup.cache file founded. Use faxsetup command"
+ return 1
+ fi
+
+ if [[ x$hfaxd == x || ! -f $hfaxd ]] ; then
+ eerror "No hfaxd daemon founded"
+ return 1
+ fi
+
+ if [[ x$faxq == x || ! -f $faxq ]] ; then
+ eerror "No faxq program founded"
+ return 1
+ fi
+
+ if [[ x$faxgetty == x || ! -f $faxgetty ]] ; then
+ eerror "No faxgetty program founded"
+ return 1
+ fi
+
+ if [ x$faxbind == x ] ; then
+ eerror "No binding address supply"
+ return 1
+ fi
+
+ if [ x$piddir == x ] ; then
+ PIDDIR=$SPOOL
+ else
+ PIDDIR=$piddir
+ fi
+
+
+ hfaxd_args="-l $faxbind -q $SPOOL"
+
+ case $mode in
+ newproto)
+ if [[ x$faxport == x ]] ; then
+ eerror "No faxport defined"
+ return 1
+ fi
+ hfaxd_args="$hfaxd_args -i $faxport"
+ ;;
+ oldproto)
+ if [[ x$oldprotoport == x ]] ; then
+ eerror "No oldprotoport defined"
+ return 1
+ fi
+ hfaxd_args="$hfaxd_args -o $oldprotoport"
+ ;;
+ snpp)
+ if [[ x$snppport == x ]] ; then
+ eerror "No snppport defined"
+ return 1
+ fi
+ hfaxd_args="$hfaxd_args -s $snppport"
+ ;;
+ any)
+ if [[ x$faxport == x || x$snppport == x || x$oldprotoport == x ]] ; then
+ eerror "No port data founded for old services"
+ return 1
+ fi
+ hfaxd_args="$hfaxd_args -i $faxport -s $snppport -o $oldprotoport"
+ ;;
+ *)
+ eerror "Invalid mode"
+ return 1
+ ;;
+
+ esac
+
+ faxq_args="-q $SPOOL"
+
+ # workaround for manage save of pidfile with start-stop-daemon
+ hfaxd_args="$hfaxd_args -d"
+ faxq_args="$faxq_args -D"
+
+ return 0
+}
+
+start() {
+ local result
+
+ checkconfig || return 1
+
+ ebegin "Starting HylaFAX server daemons"
+
+ start_faxq
+ result=$?
+
+ if [ $result -ne 0 ] ; then
+ eerror "Error on start $faxq daemon"
+ return 1
+ fi
+
+ start_hfaxd
+ result=$?
+
+ eend $result
+}
+
+start_hfaxd() {
+ local arguments="--start \
+ --make-pidfile --pidfile $PIDDIR/hfaxd.pid"
+
+ einfo "Starting $hfaxd with args $hfaxd_args"
+
+ start-stop-daemon -b ${arguments} --exec $hfaxd -- $hfaxd_args > /dev/null 2>&1
+
+ return $?;
+}
+
+start_faxq() {
+ local arguments="--start \
+ --make-pidfile --pidfile $PIDDIR/faxq.pid"
+ einfo "Starting $faxq ... "
+
+ start-stop-daemon -b ${arguments} --exec $faxq -- $faxq_args > /dev/null 2>&1
+
+ return $?
+}
+
+stop() {
+ checkconfig || return 1
+
+ ebegin "Stopping HylaFAX server daemons"
+
+ start-stop-daemon --stop --quiet --pidfile $PIDDIR/hfaxd.pid
+ start-stop-daemon --stop --quiet --pidfile $PIDDIR/faxq.pid
+ eend $?
+}
+
+zap() {
+ checkconfig || return 1
+
+ ebegin "Zap HylaFAX server daemon files"
+
+ if [ -f $PIDFILE/hfaxd.pid ] ; then
+ rm -f $PIDFILE/hfaxd.pid
+ fi
+
+ if [ -f $PIDFILE/faxq.pid ] ; then
+ rm -f $PIDFILE/faxq.pid
+ fi
+}
+
+restart() {
+ stop
+ start
+}
diff --git a/net-misc/hylafaxplus/files/ldconfig-patch b/net-misc/hylafaxplus/files/ldconfig-patch
new file mode 100644
index 000000000000..8b0f4352d51f
--- /dev/null
+++ b/net-misc/hylafaxplus/files/ldconfig-patch
@@ -0,0 +1,10 @@
+--- faxd/Makefile.LINUXdso.original 2011-12-30 18:17:59.000000000 +0100
++++ faxd/Makefile.LINUXdso 2011-12-30 18:18:51.000000000 +0100
+@@ -37,7 +37,6 @@
+
+ installDSO: libfaxserver.${DSO}
+ ${PUTSERV} -root ${INSTALLROOT} -F ${LIBDIR} -m 755 -O libfaxserver.${DSO}
+- [ `id -u` -eq 0 ] && ( PATH=${PATH}:/sbin ldconfig ${LIBDIR} ) || ( echo "ldconfig is required to be run as user root at install time" )
+
+ uninstallDSO::
+ ${RM} -f ${LIBDIR}/libfaxserver.${DSO}
diff --git a/net-misc/hylafaxplus/hylafaxplus-5.5.4-r1.ebuild b/net-misc/hylafaxplus/hylafaxplus-5.5.4-r1.ebuild
new file mode 100644
index 000000000000..1c8f78090e61
--- /dev/null
+++ b/net-misc/hylafaxplus/hylafaxplus-5.5.4-r1.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit eutils multilib pam toolchain-funcs
+
+MY_PN="${PN/plus/}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Enterprise client-server fax package for class 1 and 2 fax modems"
+HOMEPAGE="http://hylafax.sourceforge.net"
+SRC_URI="mirror://sourceforge/hylafax/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="hylafaxplus"
+KEYWORDS="amd64 x86"
+
+IUSE="jbig html ldap mgetty pam"
+
+DEPEND=">=sys-libs/zlib-1.1.4
+ app-text/ghostscript-gpl
+ virtual/mta
+ media-libs/tiff[jbig?]
+ virtual/jpeg
+ jbig? ( media-libs/jbigkit )
+ virtual/awk
+ ldap? ( net-nds/openldap )
+ pam? ( virtual/pam )
+ mgetty? ( net-dialup/mgetty[-fax] )"
+
+RDEPEND="${DEPEND}
+ net-mail/metamail
+ !net-dialup/sendpage"
+
+S="${WORKDIR}/${MY_P}"
+
+export CONFIG_PROTECT="${CONFIG_PROTECT} /var/spool/fax/etc /usr/lib/fax"
+
+src_prepare() {
+ epatch "${FILESDIR}/ldconfig-patch"
+ epatch "${FILESDIR}/hylafax-cryptglibc.patch"
+
+ # force it not to strip binaries
+ for dir in etc util faxalter faxcover faxd faxmail faxrm faxstat \
+ hfaxd sendfax sendpage ; do
+ sed -i -e "s:-idb:-idb \"nostrip\" -idb:g" \
+ "${dir}"/Makefile.in || die "sed failed"
+ done
+
+ sed -i -e "s:hostname:hostname -f:g" util/{faxrcvd,pollrcvd}.sh.in || die "sed on hostname failed"
+
+ # Respect LDFLAGS(at least partially)
+ sed -i -e "/^LDFLAGS/s/LDOPTS}/LDOPTS} ${LDFLAGS}/" defs.in || die "sed on defs.in failed"
+
+ sed -i -e "s|-fpic|-fPIC|g" \
+ configure || die
+
+ epatch_user
+}
+
+src_configure() {
+ do_configure() {
+ echo ./configure --nointeractive ${1}
+ # eval required for quoting in ${my_conf} to work properly, better way?
+ eval ./configure --nointeractive ${1} || die "./configure failed"
+ }
+ local my_conf="
+ --with-DIR_BIN=/usr/bin
+ --with-DIR_SBIN=/usr/sbin
+ --with-DIR_LIB=/usr/$(get_libdir)
+ --with-DIR_LIBEXEC=/usr/sbin
+ --with-DIR_LIBDATA=/usr/$(get_libdir)/fax
+ --with-DIR_LOCALE=/usr/share/locale
+ --with-DIR_LOCKS=/var/lock
+ --with-DIR_MAN=/usr/share/man
+ --with-DIR_SPOOL=/var/spool/fax
+ --with-DIR_HTML=/usr/share/doc/${P}/html
+ --with-DIR_CGI="${WORKDIR}"
+ --with-PATH_DPSRIP=/var/spool/fax/bin/ps2fax
+ --with-PATH_IMPRIP=\"\"
+ --with-SYSVINIT=no
+ --with-REGEX=yes
+ --with-LIBTIFF=\"-ltiff -ljpeg -lz\"
+ --with-OPTIMIZER=\"${CFLAGS}\"
+ --with-DSO=auto
+ --with-HTML=$(usex html)"
+
+ if use mgetty; then
+ my_conf="${my_conf} \
+ --with-PATH_GETTY=/sbin/mgetty \
+ --with-PATH_EGETTY=/sbin/mgetty \
+ --with-PATH_VGETTY=/usr/sbin/vgetty"
+ else
+ # GETTY defaults to /sbin/agetty
+ my_conf="${my_conf} \
+ --with-PATH_EGETTY=/bin/false \
+ --with-PATH_VGETTY=/bin/false"
+ fi
+
+ #--enable-pam isn't valid
+ use pam || my_conf="${my_conf} $(use_enable pam)"
+ use ldap || my_conf="${my_conf} $(use_enable ldap)"
+ use jbig || my_conf="${my_conf} $(use_enable jbig)"
+
+ tc-export CC CXX AR RANLIB
+
+ do_configure "${my_conf}"
+}
+
+src_compile() {
+ # Parallel building is borked
+ emake -j1
+}
+
+src_install() {
+ dodir /usr/{bin,sbin} /usr/$(get_libdir)/fax /usr/share/man
+ dodir /var/spool /var/spool/recvq /var/spool/fax
+ fowners uucp:uucp /var/spool/fax
+ fperms 0600 /var/spool/fax
+ dodir "/usr/share/doc/${P}/samples"
+
+ emake DESTDIR="${D}" \
+ BIN="${D}/usr/bin" \
+ SBIN="${D}/usr/sbin" \
+ LIBDIR="${D}/usr/$(get_libdir)" \
+ LIB="${D}/usr/$(get_libdir)" \
+ LIBEXEC="${D}/usr/sbin" \
+ LIBDATA="${D}/usr/$(get_libdir)/fax" \
+ DIR_LOCALE="${D}/usr/share/locale" \
+ MAN="${D}/usr/share/man" \
+ SPOOL="${D}/var/spool/fax" \
+ HTMLDIR="${D}/usr/share/doc/${PF}/html" \
+ install
+
+ keepdir /var/spool/fax/{archive,client,etc,pollq,recvq,tmp}
+ keepdir /var/spool/fax/{status,sendq,log,info,doneq,docq,dev}
+
+ generate_files # in this case, it only generates the env.d entry
+
+ einfo "Adding env.d entry for ${PN}"
+ doenvd "${T}/99${PN}"
+
+ newconfd "${FILESDIR}/${PN}-conf" ${PN}
+ newinitd "${FILESDIR}/${PN}-init" ${PN}
+
+ use pam && pamd_mimic_system ${MY_PN} auth account session
+
+ dodoc CONTRIBUTORS README TODO
+ docinto samples
+}
+
+pkg_postinst() {
+ elog
+ elog "The faxonly USE flag has been removed; since ${PN} does not"
+ elog "require mgetty, and certain fax files conflict, you must build"
+ elog "mgetty without fax support if you wish to use them both. You"
+ elog "may want to add both to package.use so any future updates are"
+ elog "correctly built:"
+ elog
+ elog " net-dialup/mgetty -fax"
+ elog " net-misc/hylafax [-mgetty|mgetty]"
+ elog
+ elog "See the docs and man pages for detailed configuration info."
+ elog
+ elog "Now run faxsetup and (if necessary) faxaddmodem."
+ elog
+}
+
+generate_files() {
+ cat <<-EOF > "${T}/99${PN}"
+ PATH="/var/spool/fax/bin"
+ CONFIG_PROTECT="/var/spool/fax/etc /usr/$(get_libdir)/fax"
+ EOF
+}
diff --git a/net-misc/hylafaxplus/hylafaxplus-5.5.5.ebuild b/net-misc/hylafaxplus/hylafaxplus-5.5.5.ebuild
new file mode 100644
index 000000000000..16fb6fdb980a
--- /dev/null
+++ b/net-misc/hylafaxplus/hylafaxplus-5.5.5.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit eutils multilib pam toolchain-funcs
+
+MY_PN="${PN/plus/}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Enterprise client-server fax package for class 1 and 2 fax modems"
+HOMEPAGE="http://hylafax.sourceforge.net"
+SRC_URI="mirror://sourceforge/hylafax/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="hylafaxplus"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="jbig html ldap mgetty pam"
+
+DEPEND=">=sys-libs/zlib-1.1.4
+ app-text/ghostscript-gpl
+ virtual/mta
+ media-libs/tiff[jbig?]
+ virtual/jpeg
+ jbig? ( media-libs/jbigkit )
+ virtual/awk
+ ldap? ( net-nds/openldap )
+ pam? ( virtual/pam )
+ mgetty? ( net-dialup/mgetty[-fax] )"
+
+RDEPEND="${DEPEND}
+ net-mail/metamail
+ !net-dialup/sendpage"
+
+S="${WORKDIR}/${MY_P}"
+
+export CONFIG_PROTECT="${CONFIG_PROTECT} /var/spool/fax/etc /usr/lib/fax"
+
+src_prepare() {
+ epatch "${FILESDIR}/ldconfig-patch"
+ epatch "${FILESDIR}/hylafax-cryptglibc.patch"
+
+ # force it not to strip binaries
+ for dir in etc util faxalter faxcover faxd faxmail faxrm faxstat \
+ hfaxd sendfax sendpage ; do
+ sed -i -e "s:-idb:-idb \"nostrip\" -idb:g" \
+ "${dir}"/Makefile.in || die "sed failed"
+ done
+
+ sed -i -e "s:hostname:hostname -f:g" util/{faxrcvd,pollrcvd}.sh.in || die "sed on hostname failed"
+
+ # Respect LDFLAGS(at least partially)
+ sed -i -e "/^LDFLAGS/s/LDOPTS}/LDOPTS} ${LDFLAGS}/" defs.in || die "sed on defs.in failed"
+
+ sed -i -e "s|-fpic|-fPIC|g" \
+ configure || die
+
+ epatch_user
+}
+
+src_configure() {
+ do_configure() {
+ echo ./configure --nointeractive ${1}
+ # eval required for quoting in ${my_conf} to work properly, better way?
+ eval ./configure --nointeractive ${1} || die "./configure failed"
+ }
+ local my_conf="
+ --with-DIR_BIN=/usr/bin
+ --with-DIR_SBIN=/usr/sbin
+ --with-DIR_LIB=/usr/$(get_libdir)
+ --with-DIR_LIBEXEC=/usr/sbin
+ --with-DIR_LIBDATA=/usr/$(get_libdir)/fax
+ --with-DIR_LOCALE=/usr/share/locale
+ --with-DIR_LOCKS=/var/lock
+ --with-DIR_MAN=/usr/share/man
+ --with-DIR_SPOOL=/var/spool/fax
+ --with-DIR_HTML=/usr/share/doc/${P}/html
+ --with-DIR_CGI="${WORKDIR}"
+ --with-PATH_DPSRIP=/var/spool/fax/bin/ps2fax
+ --with-PATH_IMPRIP=\"\"
+ --with-SYSVINIT=no
+ --with-REGEX=yes
+ --with-LIBTIFF=\"-ltiff -ljpeg -lz\"
+ --with-OPTIMIZER=\"${CFLAGS}\"
+ --with-DSO=auto
+ --with-HTML=$(usex html)"
+
+ if use mgetty; then
+ my_conf="${my_conf} \
+ --with-PATH_GETTY=/sbin/mgetty \
+ --with-PATH_EGETTY=/sbin/mgetty \
+ --with-PATH_VGETTY=/usr/sbin/vgetty"
+ else
+ # GETTY defaults to /sbin/agetty
+ my_conf="${my_conf} \
+ --with-PATH_EGETTY=/bin/false \
+ --with-PATH_VGETTY=/bin/false"
+ fi
+
+ #--enable-pam isn't valid
+ use pam || my_conf="${my_conf} $(use_enable pam)"
+ use ldap || my_conf="${my_conf} $(use_enable ldap)"
+ use jbig || my_conf="${my_conf} $(use_enable jbig)"
+
+ tc-export CC CXX AR RANLIB
+
+ do_configure "${my_conf}"
+}
+
+src_compile() {
+ # Parallel building is borked
+ emake -j1
+}
+
+src_install() {
+ dodir /usr/{bin,sbin} /usr/$(get_libdir)/fax /usr/share/man
+ dodir /var/spool /var/spool/recvq /var/spool/fax
+ fowners uucp:uucp /var/spool/fax
+ fperms 0600 /var/spool/fax
+ dodir "/usr/share/doc/${P}/samples"
+
+ emake DESTDIR="${D}" \
+ BIN="${D}/usr/bin" \
+ SBIN="${D}/usr/sbin" \
+ LIBDIR="${D}/usr/$(get_libdir)" \
+ LIB="${D}/usr/$(get_libdir)" \
+ LIBEXEC="${D}/usr/sbin" \
+ LIBDATA="${D}/usr/$(get_libdir)/fax" \
+ DIR_LOCALE="${D}/usr/share/locale" \
+ MAN="${D}/usr/share/man" \
+ SPOOL="${D}/var/spool/fax" \
+ HTMLDIR="${D}/usr/share/doc/${PF}/html" \
+ install
+
+ keepdir /var/spool/fax/{archive,client,etc,pollq,recvq,tmp}
+ keepdir /var/spool/fax/{status,sendq,log,info,doneq,docq,dev}
+
+ generate_files # in this case, it only generates the env.d entry
+
+ einfo "Adding env.d entry for ${PN}"
+ doenvd "${T}/99${PN}"
+
+ newconfd "${FILESDIR}/${PN}-conf" ${PN}
+ newinitd "${FILESDIR}/${PN}-init" ${PN}
+
+ use pam && pamd_mimic_system ${MY_PN} auth account session
+
+ dodoc CONTRIBUTORS README TODO
+ docinto samples
+}
+
+pkg_postinst() {
+ elog
+ elog "The faxonly USE flag has been removed; since ${PN} does not"
+ elog "require mgetty, and certain fax files conflict, you must build"
+ elog "mgetty without fax support if you wish to use them both. You"
+ elog "may want to add both to package.use so any future updates are"
+ elog "correctly built:"
+ elog
+ elog " net-dialup/mgetty -fax"
+ elog " net-misc/hylafax [-mgetty|mgetty]"
+ elog
+ elog "See the docs and man pages for detailed configuration info."
+ elog
+ elog "Now run faxsetup and (if necessary) faxaddmodem."
+ elog
+}
+
+generate_files() {
+ cat <<-EOF > "${T}/99${PN}"
+ PATH="/var/spool/fax/bin"
+ CONFIG_PROTECT="/var/spool/fax/etc /usr/$(get_libdir)/fax"
+ EOF
+}
diff --git a/net-misc/hylafaxplus/metadata.xml b/net-misc/hylafaxplus/metadata.xml
new file mode 100644
index 000000000000..69548ea80075
--- /dev/null
+++ b/net-misc/hylafaxplus/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>net-dialup</herd>
+ <maintainer>
+ <email>mattm@gentoo.org</email>
+ <name>Matthew Marlowe</name>
+ </maintainer>
+ <longdescription>
+ Enterprise client-server fax package for class 1 and 2 fax modems.
+ </longdescription>
+ <use>
+ <flag name="jbig">JBIG Fax Compression Support</flag>
+ <flag name="pam">hfaxd authentication via PAM</flag>
+ <flag name="mgetty">Receive faxes via serial port connections</flag>
+ <flag name="html">Convert faxes into html email</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">hylafax</remote-id>
+ </upstream>
+</pkgmetadata>