The port has been updated to version 6.0.7. Additional changes introduced in this port:
- Change the daemon account to use _iaxmodem uid, rather than uucp which was removed from base ages ago. - Remove patch file patch-libhylafax_FaxRecvInfo_c++ as this is included in 6.0.7 - Update package permissions so files in /usr/local/libdata/hylafax/bin are executable - Update package permission for /usr/local/libdata/hylafax/etc/xferfaxlog to be writable - No longer strip symbols when compiling with DEBUG_PACKAGES= ${BUILD_PACKAGES}
Advice for existing installations:- Updating of old files with ownership set to _iaxmodem in /usr/local/libdata/hylafax required prior to running this version - Remove the legacy uucp account from the system if no other dependencies exist
To update the file ownership in HylaFAX's spool directory, and assuming the legacy uucp account was set to uid of 66, running this command will update the files;
find /usr/local/libdata/hylafax -user 66 -exec /sbin/chown 902 {} \;
Alternatively, if this version of HylaFax 6.0.7 has already been
installed you can use;
find /usr/local/libdata/hylafax -user 66 -exec /sbin/chown _hylafax {} \;
Known Issues:
When a facsimile is received and ECM has not been negotiated, the
faxgetty process will SIGABRT on the first page. See attached backtrace.
It appears the SIGABRT issue arose in OpenBSD 6.2. There are no issues sending a facsimile when ECM has not been negotiated.If someone can cast their eyes over the code relating to the SIGABRT and make suggestions, they will be welcomed.
hylafax-6.0.7.tar.gz
Description: application/gzip
diff -Nupr /usr/ports/comms/hylafax/Makefile ./Makefile --- /usr/ports/comms/hylafax/Makefile Thu Oct 19 23:38:54 2023 +++ ./Makefile Wed Feb 18 20:52:26 2026 @@ -1,8 +1,6 @@ COMMENT= send/receive faxes and share modems -DISTNAME= hylafax-6.0.6 -REVISION= 16 +DISTNAME= hylafax-6.0.7 CATEGORIES= comms -BROKEN= abandonware, uses binaries removed in tiff 4.6 HOMEPAGE= https://www.HylaFAX.org/ @@ -13,7 +11,7 @@ SITES= http://ftp.hylafax.org/source/ \ # License: BSD # http://www.hylafax.org/HylaFAQ/copyright.html -PERMIT_PACKAGE= Yes +PERMIT_PACKAGE= Yes FLAVORS= a4 FLAVOR?= @@ -37,6 +35,10 @@ CONFIGURE_ARGS= --nointeractive \ --with-CC="${CC}" \ --with-CXX="${CXX}" \ --with-INSTALL="" \ + --with-CHGRP="/bin/chgrp" \ + --with-CHOWN="/sbin/chown" \ + --with-FAXUID="_hylafax" \ + --with-FAXGID="dialer" \ --with-OPTIMIZER="" CONFIGURE_ENV+= CCOMPILER="${CC}" CXXCOMPILER="${CXX}" \ diff -Nupr /usr/ports/comms/hylafax/distinfo ./distinfo --- /usr/ports/comms/hylafax/distinfo Thu Jul 19 23:05:30 2012 +++ ./distinfo Wed Feb 18 20:52:26 2026 @@ -1,2 +1,2 @@ -SHA256 (hylafax-6.0.6.tar.gz) = KJJpFbI85/W0iW3orF9YOJwsbmu3O07uW71RKWA798A= -SIZE (hylafax-6.0.6.tar.gz) = 1297412 +SHA256 (hylafax-6.0.7.tar.gz) = o9yxp/2HlL0zzqmpQUwy2hABGd0hMb0IqzqzdJ/DAxU= +SIZE (hylafax-6.0.7.tar.gz) = 1309111 diff -Nupr /usr/ports/comms/hylafax/patches/patch-configure ./patches/patch-configure --- /usr/ports/comms/hylafax/patches/patch-configure Sat Mar 12 02:26:27 2022 +++ ./patches/patch-configure Wed Feb 18 20:52:26 2026 @@ -1,6 +1,5 @@ -Index: configure ---- configure.orig -+++ configure +--- configure.orig Wed Jun 6 08:58:38 2012 ++++ configure Sun Feb 15 10:20:17 2026 @@ -39,7 +39,6 @@ # DIR_BIN=/usr/local/bin @@ -9,7 +8,7 @@ Index: configure DIR_LIB=/usr/local/lib DIR_LIBEXEC=$DIR_SBIN DIR_SPOOL=/var/spool/hylafax -@@ -73,13 +72,13 @@ NLS=auto +@@ -73,13 +72,13 @@ OPTIMIZER="-O" LIBCRYPT= LIBPAM= @@ -26,7 +25,16 @@ Index: configure INTLINC= REGEX=yes LIBREGEX='-L${DEPTH}/regex -lregex' -@@ -1559,7 +1558,7 @@ int t() { $f(); return 0; } +@@ -293,7 +292,7 @@ + # random version of a program in someone's personal bin. + # + OPATH=$PATH +-PATH=/bin:/usr/bin:/etc ++PATH=$OPATH:/bin:/usr/bin:/etc + test -d /usr/ccs/bin && PATH=$PATH:/usr/ccs/bin # SVR4/Solaris2 + test -d /usr/sbin && PATH=$PATH:/usr/sbin # SGI and others + test -d /usr/bsd && PATH=$PATH:/usr/bsd # SGI +@@ -1559,7 +1558,7 @@ int main(){ t(); return 0; } EOF capture cat t.c @@ -35,7 +43,7 @@ Index: configure } # -@@ -1587,7 +1586,7 @@ CheckForIncludeFile() +@@ -1587,7 +1586,7 @@ echo "#include \"$i\"" done)>t.c++ capture cat t.c++ @@ -44,7 +52,7 @@ Index: configure } if [ "$SGI2FAX" = auto ]; then -@@ -1959,6 +1958,12 @@ EmitConfigurationDefinitions() +@@ -1959,6 +1958,12 @@ CONFIG_OPENFIFO=O_RDONLY; fi ;; @@ -57,7 +65,7 @@ Index: configure *sysv4.2uw2.1.3) CONFIG_OPENFIFO=O_RDWR;; # UnixWare 2.1.3 *-sysv5UnixWare*) CONFIG_OPENFIFO=O_RDWR;; # UnixWare 7 *-sysv5OpenUNIX*) CONFIG_OPENFIFO=O_RDWR;; # OpenUNIX 8 -@@ -2563,12 +2568,11 @@ EOF +@@ -2563,12 +2568,11 @@ tiff_offset_t="uint32" tiff_bytecount_t="uint32" ;; @@ -71,7 +79,7 @@ Index: configure ;; esac fi -@@ -3405,19 +3409,8 @@ fi +@@ -3405,19 +3409,8 @@ HAVE_JBIGTIFF="/*#define HAVE_JBIGTIFF 1*/" if [ "$DISABLE_JBIG" != "yes" ]; then Note "Checking JBIG-in-TIFF conversion support." @@ -93,7 +101,7 @@ Index: configure fi Note "Done checking TIFF support." -@@ -3957,6 +3950,7 @@ if [ "$LOCKS" = auto ]; then +@@ -3957,6 +3950,7 @@ *-solaris*) LOCKS="+ascii";; *-freebsd*) LOCKS=ascii;; *-netbsd*) LOCKS=ascii;; @@ -101,7 +109,7 @@ Index: configure *bsd*) LOCKS=binary;; *) LOCKS=ascii;; esac -@@ -4681,10 +4675,10 @@ case $MANSCHEME in +@@ -4681,10 +4675,10 @@ *-0|*-0.gz|*-0.Z|*-gz|*-Z|*-z) suf=`echo $MANSCHEME | $SED 's/.*-/./'` A='`echo $$i | sed' B='`' # workaround shell bugs diff -Nupr /usr/ports/comms/hylafax/patches/patch-faxd_UUCPLock_c++ ./patches/patch-faxd_UUCPLock_c++ --- /usr/ports/comms/hylafax/patches/patch-faxd_UUCPLock_c++ Sat Mar 12 02:26:27 2022 +++ ./patches/patch-faxd_UUCPLock_c++ Wed Feb 18 20:52:26 2026 @@ -1,5 +1,5 @@ ---- faxd/UUCPLock.c++.orig Thu Sep 21 05:24:54 2000 -+++ faxd/UUCPLock.c++ Wed Jul 31 12:40:10 2002 +--- faxd/UUCPLock.c++.orig Wed Sep 19 02:51:17 2018 ++++ faxd/UUCPLock.c++ Mon Feb 16 09:18:10 2026 @@ -37,6 +37,7 @@ extern "C" { } #endif @@ -8,13 +8,16 @@ /* * UUCP Device Locking Support. -@@ -143,10 +144,13 @@ UUCPLock::setupIDs() +@@ -142,11 +143,14 @@ void + UUCPLock::setupIDs() { if (UUCPuid == (uid_t) -1) { - const passwd *pwd = getpwnam("uucp"); +- const passwd *pwd = getpwnam("uucp"); ++ const passwd *pwd = getpwnam(FAX_USER); + const group *grp = getgrnam("dialer"); if (!pwd) - faxApp::fatal("Can not deduce identity of UUCP"); +- faxApp::fatal("Can not deduce identity of UUCP"); ++ faxApp::fatal("Can not deduce identity of \"%s\"", FAX_USER); + if (!grp) + faxApp::fatal("Can not deduce identity of DIALER"); UUCPuid = pwd->pw_uid; diff -Nupr /usr/ports/comms/hylafax/patches/patch-libhylafax_FaxRecvInfo_c++ ./patches/patch-libhylafax_FaxRecvInfo_c++ --- /usr/ports/comms/hylafax/patches/patch-libhylafax_FaxRecvInfo_c++ Sat Mar 12 02:26:27 2022 +++ ./patches/patch-libhylafax_FaxRecvInfo_c++ Thu Jan 1 08:00:00 1970 @@ -1,14 +0,0 @@ -Allow building with C++14 - -Index: libhylafax/FaxRecvInfo.c++ ---- libhylafax/FaxRecvInfo.c++.orig -+++ libhylafax/FaxRecvInfo.c++ -@@ -112,7 +112,7 @@ FaxRecvInfo::decode(const char* cp) - if (cp == NULL || cp[1] != ',' || cp[2] != '"') - return (false); - u_int i = 0; -- while (cp+2 != '\0') { -+ while (*(cp+2) != '\0') { - callid[i] = cp+3; // +1 for "/+1 for ,/+1 for " - if (*cp == '\"') break; - callid[i].resize(callid[i].next(0,'"')); diff -Nupr /usr/ports/comms/hylafax/pkg/PLIST ./pkg/PLIST --- /usr/ports/comms/hylafax/pkg/PLIST Sat Mar 12 02:26:27 2022 +++ ./pkg/PLIST Wed Feb 18 21:27:20 2026 @@ -1,6 +1,8 @@ +@newgroup _hylafax:902 +@newuser _hylafax:902:_hylafax::HylaFAX Server:/var/spool/hylafax:/sbin/nologin @conflict p5-SendPage-* @mode 4555 -@owner uucp +@owner _hylafax @group dialer @bin bin/faxalter @mode @@ -9,7 +11,7 @@ @bin bin/faxcover @bin bin/faxmail @mode 4555 -@owner uucp +@owner _hylafax @group dialer @bin bin/faxrm @mode @@ -18,13 +20,14 @@ @bin bin/faxstat @bin bin/sendfax @bin bin/sendpage -@owner uucp +@owner _hylafax @group dialer libdata/hylafax/ libdata/hylafax/COPYRIGHT @comment libdata/hylafax/FIFO libdata/hylafax/archive/ libdata/hylafax/bin/ +@mode 555 libdata/hylafax/bin/archive libdata/hylafax/bin/b64-encode.awk libdata/hylafax/bin/common-functions @@ -45,6 +48,7 @@ libdata/hylafax/bin/qp-encode.awk libdata/hylafax/bin/tiff2fax libdata/hylafax/bin/tiff2pdf libdata/hylafax/bin/wedged +@mode libdata/hylafax/client/ libdata/hylafax/config/ libdata/hylafax/config/att-dataport @@ -365,7 +369,9 @@ libdata/hylafax/etc/templates/ro/notify-removed.txt libdata/hylafax/etc/templates/ro/notify-requeued.txt libdata/hylafax/etc/templates/ro/notify-timedout.txt libdata/hylafax/etc/typerules +@mode 600 libdata/hylafax/etc/xferfaxlog +@mode libdata/hylafax/info/ libdata/hylafax/log/ libdata/hylafax/pollq/ @@ -451,7 +457,7 @@ sbin/faxaddmodem sbin/faxcron @bin sbin/faxdeluser @mode 4555 -@owner uucp +@owner _hylafax @group dialer @bin sbin/faxgetty @mode @@ -462,7 +468,7 @@ sbin/faxcron @bin sbin/faxmodem @bin sbin/faxmsg @mode 4555 -@owner uucp +@owner _hylafax @group dialer @bin sbin/faxq @mode @@ -491,7 +497,7 @@ sbin/recvstats @bin sbin/typetest sbin/xferfaxstats @exec ln -sf %D/libdata/hylafax /var/spool/hylafax -@exec mkfifo %D/libdata/hylafax/FIFO; chown uucp:dialer %D/libdata/hylafax/FIFO; chmod 600 %D/libdata/hylafax/FIFO +@exec mkfifo %D/libdata/hylafax/FIFO; chown _hylafax:dialer %D/libdata/hylafax/FIFO; chmod 600 %D/libdata/hylafax/FIFO @unexec rm %D/libdata/hylafax/FIFO @extraunexec rm -f /var/spool/hylafax share/doc/pkg-readmes/${PKGSTEM}
Starting program: /usr/local/sbin/faxgetty ttyIAX3
assertion "x == lastx" failed: file "G3Decoder.c++", line 191, function
"shopliftedfrom_TIFFFax3fillruns"
Program received signal SIGABRT, Aborted.
thrkill () at /tmp/-:2
warning: 2 /tmp/-: No such file or directory
(gdb) bt
#0 thrkill () at /tmp/-:2
#1 0xf0ab60cc0951767c in ?? ()
#2 0x00000720c9fd690b in _libc_abort () at /usr/src/lib/libc/stdlib/abort.c:51
#3 0x00000720c9f6141a in _libc___assert2 (file=<optimized out>,
line=<optimized out>, func=<optimized out>,
failedexpr=<optimized out>) at /usr/src/lib/libc/gen/assert.c:52
#4 0x0000071e3fdf8bff in shopliftedfrom_TIFFFax3fillruns (buf=<optimized out>,
runs=0x7ee0e2b08028, erun=<optimized out>,
lastx=<optimized out>) at G3Decoder.c++:191
#5 0x0000071e3fdf9c20 in G3Decoder::decodeRow (this=0x72078fa4a10,
scanline=0x7ee0e2b08020, lastx=1728) at G3Decoder.c++:345
#6 0x0000071e3fdf6179 in FaxModem::recvPageDLEData (this=0x72078fa4560,
tif=0x72078fc3600, checkQuality=<optimized out>,
params=..., eresult=...) at CopyQuality.c++:215
#7 0x0000071e3fde496c in Class1Modem::recvPageData (this=0x72078fa4560,
tif=0x72078fc3600, eresult=...) at Class1Recv.c++:1859
#8 0x0000071e3fde3cbd in Class1Modem::recvPage (this=0x72078fa4560,
tif=0x72078fc3600, ppm=@0x7ee0e2b13024: 2, eresult=...,
id=...) at Class1Recv.c++:619
#9 0x0000071e3fdc8718 in FaxServer::recvFaxPhaseD (this=0x720b03bb000,
tif=0x72078fc3600, info=..., ppm=@0x7ee0e2b13024: 2,
result=...) at FaxRecv.c++:247
#10 0x0000071e3fdc7f80 in FaxServer::recvDocuments (this=0x720b03bb000,
tif=0x72078fc3600, info=..., docs=..., result=...)
at FaxRecv.c++:201
#11 0x0000071e3fdc78f9 in FaxServer::recvFax (this=0x720b03bb000, callid=...,
result=...) at FaxRecv.c++:69
#12 0x0000071e3fdc06ef in faxGettyApp::processCall (this=0x720b03bb000,
ctype=<optimized out>, eresult=..., callid=...)
at faxGettyApp.c++:579
#13 0x0000071e3fdc0994 in faxGettyApp::answerCall (this=0x720b03bb000,
atype=<optimized out>, ctype=@0x7ee0e2b137a4: 2,
eresult=..., callid=..., dialnumber=<optimized out>) at faxGettyApp.c++:542
#14 0x0000071e3fdc0301 in faxGettyApp::answerPhone (this=0x720b03bb000,
atype=0, ctype=2, callid=..., dialnumber=0x0)
at faxGettyApp.c++:429
#15 0x0000071e3fdbfb04 in faxGettyApp::listenForRing (this=0x720b03bb000) at
faxGettyApp.c++:248
#16 0x0000071e3fdc1864 in faxGettyApp::inputReady (this=0x0, fd=6) at
faxGettyApp.c++:905
#17 0x0000071e3fdc1864 in non-virtual thunk to faxGettyApp::inputReady(int) ()
#18 0x0000071e3fe0d76a in Dispatcher::notify (this=0x72078fae380, nfound=1,
rmaskret=..., wmaskret=..., emaskret=...)
at Dispatcher.c++:617
#19 0x0000071e3fe0ce4e in Dispatcher::dispatch (this=0x72078fae380,
howlong=<optimized out>) at Dispatcher.c++:499
#20 0x0000071e3fdc2519 in main (argc=2, argv=0x7ee0e2b13cd8) at
faxGettyApp.c++:1150
(gdb)
