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.

Attachment: 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)

Reply via email to