diff options
Diffstat (limited to 'comms')
-rw-r--r-- | comms/hylafax/Makefile | 2 | ||||
-rw-r--r-- | comms/hylafax/files/patch-FileTransfer.c++ | 102 | ||||
-rw-r--r-- | comms/hylafax/files/patch-configure | 18 |
3 files changed, 116 insertions, 6 deletions
diff --git a/comms/hylafax/Makefile b/comms/hylafax/Makefile index 04d5b710dfae..7f640e92a570 100644 --- a/comms/hylafax/Makefile +++ b/comms/hylafax/Makefile @@ -7,7 +7,7 @@ PORTNAME= hylafax PORTVERSION= 6.0.4 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= comms MASTER_SITES= ftp://ftp.hylafax.org/source/ diff --git a/comms/hylafax/files/patch-FileTransfer.c++ b/comms/hylafax/files/patch-FileTransfer.c++ new file mode 100644 index 000000000000..ff58afa1f1e2 --- /dev/null +++ b/comms/hylafax/files/patch-FileTransfer.c++ @@ -0,0 +1,102 @@ +--- hfaxd/FileTransfer.c++.orig 2009-12-28 20:05:40.000000000 +0100 ++++ hfaxd/FileTransfer.c++ 2010-08-26 21:47:16.000000000 +0200 +@@ -65,11 +65,31 @@ + static const char* strunames[] = { "File", "Record", "Page", "TIFF" }; + static const char* modenames[] = { "Stream", "Block", "Compressed", "ZIP" }; + ++extern "C" { ++/* ++ * TIFF Image File Directories are comprised of a table of field ++ * descriptors of the form shown below. The table is sorted in ++ * ascending order by tag. The values associated with each entry are ++ * disjoint and may appear anywhere in the file (so long as they are ++ * placed on a word boundary). ++ * ++ * If the value is 4 bytes or less, then it is placed in the offset ++ * field to save space. If the value is less than 4 bytes, it is ++ * left-justified in the offset field. ++ */ ++typedef struct { ++ uint16 tdir_tag; /* see below */ ++ uint16 tdir_type; /* data type; see below */ ++ uint32 tdir_count; /* number of items; length in spec */ ++ uint32 tdir_offset; /* byte offset to field data */ ++} TIFFDirEntry; ++} ++ + #define N(a) (sizeof (a) / sizeof (a[0])) + + + static bool +-isTIFF(const TIFFHeader& h) ++isTIFF(const TIFFHeaderClassic& h) + { + if (h.tiff_magic != TIFF_BIGENDIAN && h.tiff_magic != TIFF_LITTLEENDIAN) + return (false); +@@ -82,7 +102,7 @@ + // 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 == TIFF_VERSION_CLASSIC); + } + + +@@ -229,7 +249,7 @@ + uint32* sb; + TIFFGetField(tif, TIFFTAG_STRIPBYTECOUNTS, &sb); + file_size = sizeof (DirTemplate) + +- sizeof (TIFFHeader) + sizeof (uint16); ++ sizeof (TIFFHeaderClassic) + 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 +281,10 @@ + if (fd >= 0) { + union { + char buf[512]; +- TIFFHeader h; ++ TIFFHeaderClassic 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 == TIFF_VERSION_CLASSIC && + (b.h.tiff_magic == TIFF_BIGENDIAN || + b.h.tiff_magic == TIFF_LITTLEENDIAN)) { + (void) lseek(fd, 0L, SEEK_SET); // rewind +@@ -343,7 +363,7 @@ + { + static DirTemplate templ = { + #define TIFFdiroff(v) \ +- (uint32) (sizeof (TIFFHeader) + sizeof (uint16) + \ ++ (uint32) (sizeof (TIFFHeaderClassic) + sizeof (uint16) + \ + (intptr_t) &(((DirTemplate*) 0)->v)) + { TIFFTAG_SUBFILETYPE, TIFF_LONG, 1 }, + { TIFFTAG_IMAGEWIDTH, TIFF_LONG, 1 }, +@@ -377,14 +397,14 @@ + * of things about the contents of the TIFF file. + */ + struct { +- TIFFHeader h; ++ TIFFHeaderClassic 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 = TIFF_VERSION_CLASSIC; ++ buf.h.tiff_diroff = sizeof (TIFFHeaderClassic); + buf.dircount = (uint16) NTAGS; + getLong(tif, templ.SubFileType); + getLong(tif, templ.ImageWidth); +@@ -957,7 +977,7 @@ + if (FileCache::lookup(docname, sb) && S_ISREG(sb.st_mode)) { + union { + char buf[512]; +- TIFFHeader h; ++ TIFFHeaderClassic h; + } b; + ssize_t cc = Sys::read(fd, (char*) &b, sizeof (b)); + if (cc > 2 && b.buf[0] == '%' && b.buf[1] == '!') diff --git a/comms/hylafax/files/patch-configure b/comms/hylafax/files/patch-configure index 2a85ea7ed4e1..455dc136694e 100644 --- a/comms/hylafax/files/patch-configure +++ b/comms/hylafax/files/patch-configure @@ -1,5 +1,5 @@ --- configure.orig 2009-12-28 20:05:40.000000000 +0100 -+++ configure 2009-12-31 10:43:58.000000000 +0100 ++++ configure 2010-08-26 21:36:38.000000000 +0200 @@ -831,6 +831,7 @@ # NB: use ANSI C prototype to weed out non-ANSI compilers. # @@ -21,11 +21,11 @@ if [ "$DISABLE_JBIG" != "yes" ]; then Note "Checking for JBIG library support" - CheckForLibrary jbg_enc_init -ljbig && -+ CheckForLibrary jbg_enc_init -L/usr/local/lib -ljbig && ++ CheckForLibrary jbg_enc_init -L/usr/local/lib -L/usr/local/lib -ljbig && CheckForIncludeFile jbig.h && { HAVE_JBIG="#define HAVE_JBIG 1" - LIBJBIG="-ljbig" -+ LIBJBIG="-L/usr/local/lib -ljbig" ++ LIBJBIG="-L/usr/local/lib -L/usr/local/lib -ljbig" } if [ "x$LIBJBIG" = "x" ]; then Note "... not found. Disabling JBIG support" @@ -125,7 +125,15 @@ #include "tiffio.h" main() { -@@ -3233,7 +3269,7 @@ +@@ -2552,6 +2588,7 @@ + case ${lib_ver} in + 3.4) tiff_runlen_t="uint16" ;; + 3.[56789]) tiff_runlen_t="uint32" ;; ++ 4.[0-9]) tiff_runlen_t="uint32" ;; + esac + fi + else +@@ -3233,7 +3270,7 @@ strtoul writev " @@ -134,7 +142,7 @@ for i in $FUNCS; do CheckForFunc $i || { Note "... emulate $i" -@@ -3291,6 +3327,7 @@ +@@ -3291,6 +3328,7 @@ # Verify library is compatible. # cat>t.c<<EOF |