summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Marlowe <mattm@gentoo.org>2014-01-11 00:14:52 +0000
committerMatthew Marlowe <mattm@gentoo.org>2014-01-11 00:14:52 +0000
commit770cc07f59c1067293f203f3af15e052aaae92d2 (patch)
tree1db4cda2b7ec0f965717a82169694cff4f75c260 /net-misc/hylafaxplus
parentFix so we use rigth 1.3 getoo patchset for gcc 4.8.2 (diff)
downloadgentoo-2-770cc07f59c1067293f203f3af15e052aaae92d2.tar.gz
gentoo-2-770cc07f59c1067293f203f3af15e052aaae92d2.tar.bz2
gentoo-2-770cc07f59c1067293f203f3af15e052aaae92d2.zip
Testing user submitted patch for bug 491164
(Portage version: 2.2.8/cvs/Linux x86_64, signed Manifest commit with key 786037A7)
Diffstat (limited to 'net-misc/hylafaxplus')
-rw-r--r--net-misc/hylafaxplus/ChangeLog10
-rw-r--r--net-misc/hylafaxplus/files/hylafax-cryptglibc.patch98
-rw-r--r--net-misc/hylafaxplus/hylafaxplus-5.5.4-r1.ebuild176
3 files changed, 282 insertions, 2 deletions
diff --git a/net-misc/hylafaxplus/ChangeLog b/net-misc/hylafaxplus/ChangeLog
index eaadf2914adf..a9d5761e0f81 100644
--- a/net-misc/hylafaxplus/ChangeLog
+++ b/net-misc/hylafaxplus/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-misc/hylafaxplus
-# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/hylafaxplus/ChangeLog,v 1.7 2013/09/27 12:56:58 pinkbyte Exp $
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/hylafaxplus/ChangeLog,v 1.8 2014/01/11 00:14:52 mattm Exp $
+
+*hylafaxplus-5.5.4-r1 (11 Jan 2014)
+
+ 11 Jan 2014; Matthew Marlowe <mattm@gentoo.org>
+ +files/hylafax-cryptglibc.patch, +hylafaxplus-5.5.4-r1.ebuild:
+ Testing user submitted patch for bug 491164
27 Sep 2013; Sergey Popov <pinkbyte@gentoo.org> -hylafaxplus-5.5.1.ebuild:
Drop old
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/hylafaxplus-5.5.4-r1.ebuild b/net-misc/hylafaxplus/hylafaxplus-5.5.4-r1.ebuild
new file mode 100644
index 000000000000..b4c9324adc4e
--- /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
+# $Header: /var/cvsroot/gentoo-x86/net-misc/hylafaxplus/hylafaxplus-5.5.4-r1.ebuild,v 1.1 2014/01/11 00:14:52 mattm Exp $
+
+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=""
+
+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
+}