diff options
Diffstat (limited to 'testing/hylafax')
-rw-r--r-- | testing/hylafax/PKGBUILD | 53 | ||||
-rw-r--r-- | testing/hylafax/config.local | 273 | ||||
-rw-r--r-- | testing/hylafax/configure-6.0.5.patch | 11 | ||||
-rwxr-xr-x | testing/hylafax/hylafax | 71 | ||||
-rw-r--r-- | testing/hylafax/hylafax-libtiff4.patch | 229 | ||||
-rw-r--r-- | testing/hylafax/hylafax.cron.daily | 4 | ||||
-rw-r--r-- | testing/hylafax/hylafax.install | 46 |
7 files changed, 687 insertions, 0 deletions
diff --git a/testing/hylafax/PKGBUILD b/testing/hylafax/PKGBUILD new file mode 100644 index 000000000..74ece5343 --- /dev/null +++ b/testing/hylafax/PKGBUILD @@ -0,0 +1,53 @@ +# $Id: PKGBUILD 148161 2012-01-30 18:47:17Z ibiru $ +# Maintainer: Paul Mattal <paul@archlinux.org> +pkgname=hylafax +pkgver=6.0.5 +pkgrel=3 +pkgdesc="Fax Server" +arch=('i686' 'x86_64') +install='hylafax.install' +license=('custom') +depends=('libtiff' 'pam' 'ghostscript') +makedepends=('smtp-server') +url="http://www.hylafax.org/" +backup=(var/spool/hylafax/bin/{faxrcvd,notify} + usr/lib/fax/{faxcover.ps,hfaxd.conf,pagesizes,typerules} + var/spool/hylafax/etc/hosts.hfaxd) +source=(ftp://ftp.hylafax.org/source/${pkgname}-${pkgver}.tar.gz + hylafax + hylafax.cron.daily + config.local + configure-6.0.5.patch + hylafax-libtiff4.patch) +md5sums=('eb9ac942354ad708e20e4583cec6615f' + '6602288a405324d8c8e3c5eac2bf19fd' + '52beffe7dc296b4f9ce9fd0387f7804e' + '0d2ce24d918226a852539aebf57d3f4a' + '51d9f639bb76e5e39cdc8e2ac07e208d' + '3d239c186f24720e945508d349b069b1') + +build() { + cd "$srcdir/${pkgname}-${pkgver}" + cp ../config.local . + # fix compiling + patch -Np0 -i ../configure-6.0.5.patch + patch -Np1 -i ../hylafax-libtiff4.patch + ./configure --nointeractive --with-OPTIMIZER="${CFLAGS}" + make +} + +package () { + cd "$srcdir/${pkgname}-${pkgver}" + mkdir -p "$pkgdir"/usr/{bin,lib/fax,sbin,share/ghostscript/fonts} + mkdir -p "$pkgdir"/var/{spool/hylafax,lock} + make ROOT="$pkgdir" install + install -D -m 755 "$srcdir"/hylafax "$pkgdir"/etc/rc.d/hylafax + install -D -m 744 "$srcdir"/hylafax.cron.daily "$pkgdir"/etc/cron.daily/hylafax + # add missing awk file for notify-4.1 script + install -D -m 755 "$srcdir"/${pkgname}-${pkgver}/util/notify.awk \ + "$pkgdir"/var/spool/hylafax/bin/notify.awk + # fix permission on /var/lock + chmod 1777 "$pkgdir"/var/lock + + install -D -m644 COPYRIGHT "$pkgdir"/usr/share/licenses/$pkgname/COPYRIGHT +} diff --git a/testing/hylafax/config.local b/testing/hylafax/config.local new file mode 100644 index 000000000..0d8e2bcd8 --- /dev/null +++ b/testing/hylafax/config.local @@ -0,0 +1,273 @@ +# $Id: config.local,v 1.1 2003/06/28 00:24:49 jproctor Exp $ +# +# HylaFAX Facsimile Software +# +# Copyright (c) 1990-1996 Sam Leffler +# Copyright (c) 1991-1996 Silicon Graphics, Inc. +# HylaFAX is a trademark of Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# + +# +# This file holds site-specific configuration parameters. +# +# Nothing is defined in here by default, the definitions +# commented out below serve as documentation for what you +# can set in this file or a config.local file. +# +# Note that you do not need to set anything here unless you +# want to override the auto-configuration behaviour and/or +# interactive prompting done by the configure script. +# + +# +# Package controls. +# +#DSO="auto" # configure DSO support (auto|IRIX|no) +#GETTY="auto" # type of getty support (auto|BSD|SysV) +#HTML="no" # install HTML documentation (yes|no) +#PS="auto" # PostScript support to use (auto|gs|dps|imp) +#SGI2FAX="auto" # configure SGI image support (auto|yes|no) +#DPS="no" # install SGI DPS-based RIP (yes|no) +#GS="no" # install Ghostscript RIP (yes|no) +#IMP="no" # install SGI Impressario 2.1 support (yes|no) +#REGEX="yes" # use distributed regular expression package +#UTMP="utmpx" # type of utmp+wtmp handling (auto|utmp|utmpx) +#DBLIB="no" # use distributed libdb distribution + +# +# Directory parameters. +# +DIR_BIN="/usr/bin" # directory for client apps +DIR_LIB="/usr/lib" +DIR_LIBDATA="/usr/lib/fax" # directory for client data +DIR_LIBEXEC="/usr/lib/fax" # directory for libraries&hidden apps +DIR_MAN="/usr/share/man" # directory for manual pages +DIR_SPOOL="/var/spool/hylafax" # directory for spooling area +DIR_SBIN="/usr/sbin" # directory for system apps +DIR_LOCKS="/var/lock" # directory for UUCP lock files +FONTMAP="/usr/share/ghostscript/fonts" # directorys containing Fontmap files +DIR_LOCALE="/usr/share/locale" +#PATH_AFM="/usr/lib/DPS/AFM" # directorys for AFM files + +# +# HTML-specific parameters; only used when the +# HTML package is configured for installation. +# +# Note that ``PATH''s are the virtual pathnames used +# in forming URLs; they are not directory pathnames +# in the filesystem. +# +DIR_HTML="/usr/share/hylafax/httpd" # directory for HTML documentation +#DIR_CGI="/var/httpd/cgi-bin" # directory for CGI scripts +#HTMLPATH="/hylafax" # virtual path to HTML materials +#CGIPATH="/cgi-bin" # virtual path to CGI scripts + +# +# Miscellaneous parameters. +# +#DEFVRES="196" # default vertical res for outbound fax +#FILLORDER="MS2LSB" # bit order of cpu (MSB2LSB/LSB2MSB) +#AXGID="uucp" # group ID for fax user +#FAXUID="uucp" # user ID for fax user +#PAGESIZE="North American Letter" # default page size +SYSGID="root" # group ID for system installs +SYSUID="root" # user ID for system installs +#LOCKS="ascii" # default UUCP lockfile scheme +# +#PATH_GETTY="/etc/getty" # pathname of suitable getty program +#PATH_VGETTY="/bin/vgetty" # pathname of voice getty program +#PATH_EGETTY="/bin/egetty" # pathname of external getty program +#PATH_SENDMAIL="/usr/lib/sendmail" # pathname of suitable sendmail program +#PATH_GSRIP="/usr/local/bin/gs" # pathname of Ghostscript-based RIP +#PATH_DPSRIP="/var/spool/hylafax/bin/ps2fax.exe" # pathname of DPS-based RIP +#PATH_IMPRIP="/usr/lib/print/psrip" # pathname of Impressario 2.1 RIP +#MANSCHEME="sysv-source-cat-strip" # manual page installation scheme +#SYSVINIT="auto" # install SysV-style init support (auto|yes|no) +#DIR_SYSVINIT="/etc/init.d" # location of SysV-style init script +#DIR_SYSVINITSTART="../rc2.d" # location of SysV-style start script +#DIR_SYSVINITSTOP="../rc0.d" # location of SysV-style stop script +#NAME_SYSVINITSTART="S80fax" # name of SysV-style start script +#NAME_SYSVINITSTOP="K80fax" # name of SysV-style stop script +#FAXQ_SERVER=yes # init script starts faxq +#HFAXD_SERVER=yes # init script starts hfaxd +#HFAXD_OLD_PROTOCOL=no # don't start old protocol +#HFAXD_SNPP_SERVER=no # don't start paging protocol + +# SVR4 packaging stuff +#PKG_ARCH= # ARCH variable in pkginfo file +#PKG_EMAIL=someone@somehost.somedomain # EMAIL variable in pkginfo file +#PKG_VENDOR="Your Name Here" # VENDOR variable in pkginfo file +# + +# +# Parameters used when building the software. +# +# Note that configure has several ENVOPTS built into it that are +# set according to the target. This is done to help naive folks. +# +# Beware of changing the INSTALL definition; you *must* have an +# install script that emulates the Silicon Graphics install program! +# +#AR="/bin/ar" # pathname of suitable ar program +#AROPTS="rc" # options to ar for creating archive +#CC="gcc" # name/pathname of C compiler +#CXX="gcc" # name/pathname of C++ compiler +#CXXFILE="-x c++" # options for proper C++ processing +#ENVOPTS="-Aa" # options for getting ANSI C +#GCOPTS="-g" # options to pass C compiler +#GCXXOPTS="-g" # options to pass C++ compiler +#GENDIST="/sbin/gendist" # pathname of SGI inst generator program +#INSTALL='${SHELL} ${PORT}/install.sh' # SGI install program/emulator +#LIBMALLOC="auto" # yes|no|auto configure -lmalloc use +#LIBPORT='${PORT}/libport.a' # library with emulation code +#LIBSUN="auto" # yes|no|auto configure -lsun use +#LLDOPTS="" # extra link line options +#MACHDEPLIBS="" # extra libraries for linking +#PORTFUNCS="" # non-standard functions to emulate +#PROTOTYPES="-prototypes" # C compiler options for checking function prototypes +#RANLIB=":" # pathname of suitable ranlib program +#SHDLIBC="-lc_s" # shared C library, if not standard +#SIGHANDLERTYPES='(void(*)(int,...))' # types to check for signal handler +#STRIP="/bin/strip" # strip program used by install.sh + +# +# The source for the TIFF library is not required +# to build this software, but the library is required +# to link against. If libtiff is installed in a +# non-standard location then setup LIBTIFF accordingly. +# +#LIBTIFF="-L/usr/local/lib -ltiff" # linkage convention for libtiff +#TIFFINC="/usr/local/include" # place to find tiffio.h +#TIFFBIN="/usr/local/bin" # where TIFF tools live + +# +# The source for the ZLIB library is not required +# to build this software, but the library is required +# to link against. If ZLIB is installed in a +# non-standard location then setup LIBZ accordingly. +# +#LIBZ="-L/usr/local/lib -lz" # linkage convention for libz +#ZLIBINC="-I/usr/local/include" # place to find zlib.h + +# +# The source for the POSIX regular expression package +# is not required to build this software, but the package +# is required to link against. If the copy of the software +# that is included in this distribution is not to be used +# then set REGEX=no and supply the following definitions. +# +#LIBREGEX=" " # linkage convention for regex package +#REGEXINC="/usr/include" # place to find regex.h + +# +# The LIBDB hashed database package is (currently) used +# only by the MLA tools that are not publicly available +# but which are built from within this source tree. In +# the future the fax software may use the libdb software +# for the remote client capabilities database (so these +# hooks are included now). +# +# The source for the LIBDB hashed database package +# is not required to build this software, but the package +# is required to link against. If the copy of the software +# that is included in this distribution is not to be used +# then set DBLIB=no and supply the following definitions. +# +#LIBDB=" " # linkage convention for libdb package +#DBLIBINC="/usr/include" # place to find db.h + +# +# Parameters to control various workarounds for system bugs. +# +# These parameters are normally set in configure based on +# the target system. If they are set here, then they will +# override anything done by configure. +# +#CONFIG_OPENFIFO="O_RDONLY" # mode to open FIFOs in server proc's +#CONFIG_FIFOBUG="yes" # enable workaround for FIFO select bug +#CONFIG_TIOCMBISBYREF="yes" # pass arg by reference to ioctl +#CONFIG_WINSZHACK="no" # include extra files for TIOCWINSZ use +#CONFIG_ABORTBUG="no" # enable workaround for abort problems +#CONFIG_NOREOPEN="yes" # reopen tty device after toggling DTR +#CONFIG_NOSTDINDUP="yes" # do not redirect stdout to stdin in ondelay +#CONFIG_BADEXECVPROTO="no" # system has incorrect execv func decl +#CONFIG_BADEXECVEPROTO="no" # system has incorrect execve func decl +#CONFIG_BADGETOPTPROTO="no" # system has incorrect getopt func decl +#CONFIG_SOCKARGLENTYPE="unsigned long" # call-by-ref arg type for socket funcs +#CONFIG_BADSELECTPROTO="no" # system has way old select func decl +#CONFIG_MAXGID="5999" # maximum permissable GID +#CONFIG_OSFCNH="auto" # control inclusion of <osfcn.h> + +# +# Dynamic Shared Object (DSO) support. +# +# Beware that adding new support for DSOs may require some +# modifications to the */Makefile.dso files. +# +#DSOSUF="so" # DSO filename suffix +#DSODELAY="-delay_load" # DSO option for delayed loading +#DSOOPTS="-shared -rdata_shared" # options for building DSOs + +# +# Makefile construction parameters. +# +# These should not normally be set; configure will +# deduce the appropriate syntax to use for includes. +# +#MAKECXXOVERRIDE="=.C" # make override stuff for SunPRO C++ +#MAKEDEPINCLUDE="include" # make include for dependency files +#MAKEDSOINCLUDE="#" # make include for DSO support +#MAKEINCLUDE=".include" # make include syntax +#MAKELQUOTE="<" # make include syntax +#MAKERQUOTE=">" # make include syntax +#SETMAKE='MAKE = ${MAKE}' # define if make does not setup $MAKE +#MKDEPCOPTS="" # C compiler opts to supply w/ -M +#MKDEPCXXOPTS="" # C++ compiler opts to supply w/ -M + +# +# General system stuff used by the distribution. +# +# Beware of setting these as configure selects several programs +# based on whether or not they are capable of processing scripts +# included in the distribution (e.g AWK and SCRIPT_SH, SED). +# +#AWK="/bin/awk" # pathname of suitable awk program +#CAT="/bin/cat" # pathname of suitable cat program +#CHGRP="/etc/chgrp" # pathname of suitable chgrp program +#CHMOD="/etc/chmod" # pathname of suitable chmod program +#CHOWN="/etc/chown" # pathname of suitable chown program +#CMP="/bin/cmp" # pathname of suitable cmp program +#COL="/bin/col" # pathname of suitable col program +#CP="/bin/cp" # pathname of suitable cp program +#ECHO="/bin/echo" # pathname of suitable echo program +#GREP="/bin/grep" # pathname of suitable grep program +#LN="/bin/ln" # pathname of suitable ln program +#LN_S="-s" # option to ${LN} to create symlink +#MAN="/usr/bin/man" # pathname of suitable man program +#MKDIR="/bin/mkdir" # pathname of suitable mkdir program +#MKFIFO="/bin/mkfifo" # pathname of suitable mkfifo program +#MV="/bin/mv" # pathname of suitable mv program +#MV_F="-f" # option to ${MV} to force operation +#RMCMD="/bin/rm" # pathname of suitable rm program +#SED="/bin/sed" # pathname of suitable sed program +#SCRIPT_SH="/bin/sh" # pathname of suitable shell +#SORT="/bin/sort" # pathname of suitable sort program diff --git a/testing/hylafax/configure-6.0.5.patch b/testing/hylafax/configure-6.0.5.patch new file mode 100644 index 000000000..e1f1126a5 --- /dev/null +++ b/testing/hylafax/configure-6.0.5.patch @@ -0,0 +1,11 @@ +--- configure.old 2011-08-08 10:19:37.619657223 +0200 ++++ configure 2011-08-08 10:20:26.422189170 +0200 +@@ -2882,7 +2882,7 @@ + echo '#define HAS_FCHMOD 1' + Note "... configure use of fchmod" + CheckFuncDecl fchmod 'extern int fchmod(int, mode_t);' \ +- unistd.h libc.h $OSFCNH sys/stat.h ++ unistd.h $OSFCNH sys/stat.h libc.h + } + CheckFuncDecl mknod 'extern int mknod(const char*, mode_t, dev_t);' \ + unistd.h sys/stat.h diff --git a/testing/hylafax/hylafax b/testing/hylafax/hylafax new file mode 100755 index 000000000..9f949c2ac --- /dev/null +++ b/testing/hylafax/hylafax @@ -0,0 +1,71 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +DAEMON_NAME="hylafax" +FAXQ_BIN=/usr/sbin/faxq +FAXQ_PID=`pidof -o %PPID $FAXQ_BIN` +HFAXD_BIN=/usr/lib/fax/hfaxd +HFAXD_PID=`pidof -o %PPID $HFAXD_BIN` +HFAXD_OPTS="-i hylafax" +FAXQUIT_BIN=/usr/sbin/faxquit + +. /var/spool/hylafax/etc/setup.cache + +case "$1" in + start) + stat_busy "Starting $DAEMON_NAME" + [ -z "$FAXQ_PID" ] && $FAXQ_BIN + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + echo `pidof -o %PPID $FAXQ_BIN` > /var/run/faxq.pid + fi + [ -z "$HFAXD_PID" ] && $HFAXD_BIN $HFAXD_OPTS + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + echo `pidof -o %PPID $HFAXD_BIN` > /var/run/hfaxd.pid + fi + add_daemon $DAEMON_NAME + stat_done + ;; + + stop) + stat_busy "Stopping $DAEMON_NAME" + $FAXQUIT_BIN >/dev/null 2>&1 + if [ $? -gt 0 ]; then + [ ! -z "$FAXQ_PID" ] && kill $FAXQ_PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + rm /var/run/faxq.pid &> /dev/null + fi + else + rm /var/run/faxq.pid &> /dev/null + fi + [ ! -z "$HFAXD_PID" ] && kill $HFAXD_PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + rm /var/run/hfaxd.pid &> /dev/null + fi + rm_daemon $DAEMON_NAME + stat_done + ;; + + restart) + $0 stop + sleep 1 + $0 start + ;; + + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/testing/hylafax/hylafax-libtiff4.patch b/testing/hylafax/hylafax-libtiff4.patch new file mode 100644 index 000000000..4a49511f8 --- /dev/null +++ b/testing/hylafax/hylafax-libtiff4.patch @@ -0,0 +1,229 @@ +--- hylafax-6.0.5/configure 2010-09-15 10:42:36.000000000 -0400 ++++ hylafax-5.5.1/configure 2012-01-02 17:44:20.000000000 -0500 +@@ -2531,6 +2566,7 @@ + Note "... checking TIFF library version" + tiff_runlen_t="" + cat>t.c<<EOF ++#include <stdlib.h> + #include <stdio.h> + #include "tiffio.h" + main() +@@ -2550,8 +2586,18 @@ + Note " Found libtiff version ${lib_ver}" + if [ ${header_ver} -ge 19960307 ]; then + case ${lib_ver} in +- 3.4) tiff_runlen_t="uint16" ;; +- 3.[56789]) tiff_runlen_t="uint32" ;; ++ 3.4) tiff_runlen_t="uint16" ++ echo '#define TIFFSTRIPBYTECOUNTS uint32' ++ echo '#define TIFFVERSION TIFF_VERSION' ++ echo '#define TIFFHEADER TIFFHeader';; ++ 3.[56789]) tiff_runlen_t="uint32" ++ echo '#define TIFFSTRIPBYTECOUNTS uint32' ++ echo '#define TIFFVERSION TIFF_VERSION' ++ echo '#define TIFFHEADER TIFFHeader';; ++ 4.0) tiff_runlen_t="uint32" ++ echo '#define TIFFSTRIPBYTECOUNTS uint64' ++ echo '#define TIFFVERSION TIFF_VERSION_CLASSIC' ++ echo '#define TIFFHEADER TIFFHeaderClassic';; + esac + fi + else +@@ -2588,7 +2634,7 @@ + Incompatible TIFF Library. + + HylaFAX ${VERSION} requires TIFF software distribution versions 3.4 through +-3.9. If you do not have up to date TIFF software on your system ++4.0. If you do not have up to date TIFF software on your system + then you can retrieve it from the location where you obtained this software. + The Home Page for version 3.5 and later is http://www.remotesensing.org/libtiff/ + EOF +--- hylafax-6.0.5/hfaxd/FileTransfer.c++ 2010-09-15 10:42:36.000000000 -0400 ++++ hylafax-5.5.1/hfaxd/FileTransfer.c++ 2012-01-02 17:44:19.000000000 -0500 +@@ -164,26 +142,26 @@ + * a single IFD/image from a TIFF file. + */ + typedef struct { +- TIFFDirEntry SubFileType; +- TIFFDirEntry ImageWidth; +- TIFFDirEntry ImageLength; +- TIFFDirEntry BitsPerSample; +- TIFFDirEntry Compression; +- TIFFDirEntry Photometric; +- TIFFDirEntry FillOrder; +- TIFFDirEntry StripOffsets; +- TIFFDirEntry Orientation; +- TIFFDirEntry SamplesPerPixel; +- TIFFDirEntry RowsPerStrip; +- TIFFDirEntry StripByteCounts; +- TIFFDirEntry XResolution; +- TIFFDirEntry YResolution; +- TIFFDirEntry Options; // T4 or T6 +- TIFFDirEntry ResolutionUnit; +- TIFFDirEntry PageNumber; +- TIFFDirEntry BadFaxLines; +- TIFFDirEntry CleanFaxData; +- TIFFDirEntry ConsecutiveBadFaxLines; ++ HFClassicTIFFDirEntry SubFileType; ++ HFClassicTIFFDirEntry ImageWidth; ++ HFClassicTIFFDirEntry ImageLength; ++ HFClassicTIFFDirEntry BitsPerSample; ++ HFClassicTIFFDirEntry Compression; ++ HFClassicTIFFDirEntry Photometric; ++ HFClassicTIFFDirEntry FillOrder; ++ HFClassicTIFFDirEntry StripOffsets; ++ HFClassicTIFFDirEntry Orientation; ++ HFClassicTIFFDirEntry SamplesPerPixel; ++ HFClassicTIFFDirEntry RowsPerStrip; ++ HFClassicTIFFDirEntry StripByteCounts; ++ HFClassicTIFFDirEntry XResolution; ++ HFClassicTIFFDirEntry YResolution; ++ HFClassicTIFFDirEntry Options; // T4 or T6 ++ HFClassicTIFFDirEntry ResolutionUnit; ++ HFClassicTIFFDirEntry PageNumber; ++ HFClassicTIFFDirEntry BadFaxLines; ++ HFClassicTIFFDirEntry CleanFaxData; ++ HFClassicTIFFDirEntry ConsecutiveBadFaxLines; + uint32 link; // offset to next directory + uint32 xres[2]; // X resolution indirect value + uint32 yres[2]; // Y resolution indirect value +@@ -226,10 +204,10 @@ + * amount of image data and then adding in + * the expected data for the TIFF headers. + */ +- uint32* sb; ++ TIFFSTRIPBYTECOUNTS* sb; + TIFFGetField(tif, TIFFTAG_STRIPBYTECOUNTS, &sb); + file_size = sizeof (DirTemplate) + +- sizeof (TIFFHeader) + sizeof (uint16); ++ sizeof (TIFFHEADER) + sizeof (uint16); + for (tstrip_t s = 0, ns = TIFFNumberOfStrips(tif); s < ns; s++) + file_size += sb[s]; + reply(code, "%s for %s (%lu bytes).", +@@ -261,10 +239,10 @@ + if (fd >= 0) { + union { + char buf[512]; +- TIFFHeader h; ++ TIFFHEADER h; + } b; + ssize_t cc = Sys::read(fd, (char*) &b, sizeof (b)); +- if (cc > (ssize_t)sizeof (b.h) && b.h.tiff_version == TIFF_VERSION && ++ if (cc > (ssize_t)sizeof (b.h) && b.h.tiff_version == TIFFVERSION && + (b.h.tiff_magic == TIFF_BIGENDIAN || + b.h.tiff_magic == TIFF_LITTLEENDIAN)) { + (void) lseek(fd, 0L, SEEK_SET); // rewind +@@ -318,12 +296,12 @@ + } + + static void +-getLong(TIFF* tif, TIFFDirEntry& de) ++getLong(TIFF* tif, HFClassicTIFFDirEntry& de) + { + TIFFGetField(tif, de.tdir_tag, &de.tdir_offset); + } + static void +-getShort(TIFF* tif, TIFFDirEntry& de) ++getShort(TIFF* tif, HFClassicTIFFDirEntry& de) + { + uint16 v; + TIFFGetField(tif, de.tdir_tag, &v); +@@ -343,7 +321,7 @@ + { + static DirTemplate templ = { + #define TIFFdiroff(v) \ +- (uint32) (sizeof (TIFFHeader) + sizeof (uint16) + \ ++ (uint32) (sizeof (TIFFHEADER) + sizeof (uint16) + \ + (intptr_t) &(((DirTemplate*) 0)->v)) + { TIFFTAG_SUBFILETYPE, TIFF_LONG, 1 }, + { TIFFTAG_IMAGEWIDTH, TIFF_LONG, 1 }, +@@ -368,7 +346,7 @@ + 0, // next directory + { 0, 1 }, { 0, 1 }, // x+y resolutions + }; +-#define NTAGS ((TIFFdiroff(link)-TIFFdiroff(SubFileType)) / sizeof (TIFFDirEntry)) ++#define NTAGS ((TIFFdiroff(link)-TIFFdiroff(SubFileType)) / sizeof (HFClassicTIFFDirEntry)) + /* + * Construct the TIFF header for this IFD using + * the preconstructed template above. We extract +@@ -377,14 +355,14 @@ + * of things about the contents of the TIFF file. + */ + struct { +- TIFFHeader h; ++ TIFFHEADER h; + uint16 dircount; + u_char dirstuff[sizeof (templ)]; + } buf; + union { int32 i; char c[4]; } u; u.i = 1; + buf.h.tiff_magic = (u.c[0] == 0 ? TIFF_BIGENDIAN : TIFF_LITTLEENDIAN); +- buf.h.tiff_version = TIFF_VERSION; +- buf.h.tiff_diroff = sizeof (TIFFHeader); ++ buf.h.tiff_version = TIFFVERSION; ++ buf.h.tiff_diroff = sizeof (TIFFHEADER); + buf.dircount = (uint16) NTAGS; + getLong(tif, templ.SubFileType); + getLong(tif, templ.ImageWidth); +@@ -412,7 +390,7 @@ + getShort(tif, templ.CleanFaxData); + getLong(tif, templ.ConsecutiveBadFaxLines); + if (buf.h.tiff_magic == TIFF_BIGENDIAN) { +- TIFFDirEntry* dp = &templ.SubFileType; ++ HFClassicTIFFDirEntry* dp = &templ.SubFileType; + for (u_int i = 0; i < NTAGS; i++) { + if (dp->tdir_type == TIFF_SHORT) + dp->tdir_offset <<= 16; +@@ -441,7 +419,7 @@ + bool + HylaFAXServer::sendITIFFData(TIFF* tif, int fdout) + { +- uint32* sb; ++ TIFFSTRIPBYTECOUNTS* sb; + (void) TIFFGetField(tif, TIFFTAG_STRIPBYTECOUNTS, &sb); + tdata_t buf = _TIFFmalloc(sb[0]); + tsize_t bsize = sb[0]; +--- hylafax-6.0.5/hfaxd/FileTransfer.c++ 2012-01-28 15:27:47.000000000 -0500 ++++ hylafax-5.5.1/hfaxd/FileTransfer.c++ 2012-01-28 15:30:12.000000000 -0500 +@@ -69,7 +69,7 @@ + + + static bool +-isTIFF(const TIFFHeader& h) ++isTIFF(const TIFFHEADER& h) + { + if (h.tiff_magic != TIFF_BIGENDIAN && h.tiff_magic != TIFF_LITTLEENDIAN) + return (false); +@@ -82,11 +82,23 @@ + // byte swap version stamp if opposite byte order + if ((u.c[0] == 0) ^ (h.tiff_magic == TIFF_BIGENDIAN)) + TIFFSwabShort(&version); +- return (version == TIFF_VERSION); ++ return (version == TIFFVERSION); + } + + + /* ++ * This is copied right from tiff.h in version 3.8.2. This was necessary ++ * to localize here because it was removed from tiff.h in version 4.0. ++ * In tiff.h 3.8.2 it was known as "TIFFDirEntry". ++ */ ++typedef struct { ++ uint16 tdir_tag; ++ uint16 tdir_type; /* data type */ ++ uint32 tdir_count; /* number of items; length in spec */ ++ uint32 tdir_offset; /* byte offset to field data */ ++} HFClassicTIFFDirEntry; ++ ++/* + * Record a file transfer in the log file. + */ + void +@@ -957,7 +957,7 @@ + if (FileCache::lookup(docname, sb) && S_ISREG(sb.st_mode)) { + union { + char buf[512]; +- TIFFHeader h; ++ TIFFHEADER h; + } b; + ssize_t cc = Sys::read(fd, (char*) &b, sizeof (b)); + if (cc > 2 && b.buf[0] == '%' && b.buf[1] == '!') diff --git a/testing/hylafax/hylafax.cron.daily b/testing/hylafax/hylafax.cron.daily new file mode 100644 index 000000000..2d1a77e5c --- /dev/null +++ b/testing/hylafax/hylafax.cron.daily @@ -0,0 +1,4 @@ +#!/bin/sh + +/usr/sbin/faxqclean +/usr/sbin/faxcron -rcv 30 diff --git a/testing/hylafax/hylafax.install b/testing/hylafax/hylafax.install new file mode 100644 index 000000000..5dacf4045 --- /dev/null +++ b/testing/hylafax/hylafax.install @@ -0,0 +1,46 @@ + +print_install() { + printf "\n" + echo "Add the following to /etc/inittab and run telinit q" + echo " f1:2345:respawn:/usr/lib/fax/faxgetty ttyS0" + echo "faxgetty should now be running" + printf "\n" + echo "Run faxsetup to configure and be sure to set..." + echo " The device to configure is usually ttyS0" + echo " The number of pages to accept to more than 25" + echo " The country code and area code" + echo " The faxclass to 2.0" + echo " Most other defaults are OK" + printf "\n" +} + +print_remove() { + printf "\n\n" + echo "You may manually remove /var/spool/hylafax and /usr/lib/fax if you do not need anything." + echo "You may also remove any aliases added to /etc/mail/aliases." + printf "\n" +} + +post_install() { + post_upgrade + print_install +} + +post_upgrade() { + groupadd -g 14 uucp &>/dev/null + useradd -u 10 -g uucp -d '/' -s /bin/false uucp &>/dev/null + useradd -u 69 -g daemon -d '/' -s /bin/false fax &>/dev/null + chown uucp /var/spool/hylafax/{,archive,bin,client,config,dev,docq,doneq,etc} + chown uucp /var/spool/hylafax/{FIFO,info,log,pollq,recvq,sendq,status,tmp} + chown uucp /var/spool/hylafax/etc/{hosts.hfaxd,lutRS18.pcf,xferfaxlog} + chown -R uucp /var/spool/hylafax/etc/templates + usermod -d '/' uucp &>/dev/null + usermod -d '/' fax &>/dev/null +} + +pre_remove() { + userdel uucp &>/dev/null + groupdel uucp &>/dev/null + userdel fax &>/dev/null + print_remove +} |