diff options
author | Matthew Marlowe <mattm@gentoo.org> | 2014-01-11 00:14:52 +0000 |
---|---|---|
committer | Matthew Marlowe <mattm@gentoo.org> | 2014-01-11 00:14:52 +0000 |
commit | 770cc07f59c1067293f203f3af15e052aaae92d2 (patch) | |
tree | 1db4cda2b7ec0f965717a82169694cff4f75c260 /net-misc/hylafaxplus | |
parent | Fix so we use rigth 1.3 getoo patchset for gcc 4.8.2 (diff) | |
download | gentoo-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/ChangeLog | 10 | ||||
-rw-r--r-- | net-misc/hylafaxplus/files/hylafax-cryptglibc.patch | 98 | ||||
-rw-r--r-- | net-misc/hylafaxplus/hylafaxplus-5.5.4-r1.ebuild | 176 |
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 +} |