From: Larry Moore Subject: [UPDATE] telephony/iaxmodem 1.3.4 -> 1.3.5 To: OpenBSD Ports Date: Wed, 18 Feb 2026 18:24:30 +0800 The port has been updated to version 1.3.5. Additional changes introduced in this port: - Change the daemon account from uucp to _iaxmodem - Include an rc.d script Advice for existing installations: - Remove/disable the method you to start the service before enabling the iaxmodem service. - Review existing configuration files and update the owner uid to _iaxmodem owner _iaxmodem:dialer Refer to the sample configuration file /usr/local/share/examples/iaxmodem/iaxmodem-cfg.ttyIAX Observations: If existing configuration files remain unaltered and the legacy uucp account is removed, the uid of the modem device files will be set to root. lrwxr-xr-x 1 root wheel 10 Feb 18 17:40 /dev/ttyIAX -> /dev/ttyp1 lrwxr-xr-x 1 root wheel 10 Feb 18 17:40 /dev/ttyIAX2 -> /dev/ttyp2 lrwxr-xr-x 1 root wheel 10 Feb 18 17:40 /dev/ttyIAX3 -> /dev/ttyp0 crw-rw---- 1 root dialer 5, 0 Feb 18 17:40 /dev/ttyp0 crw-rw---- 1 _iaxmodem dialer 5, 1 Feb 18 17:40 /dev/ttyp1 crw-rw---- 1 root dialer 5, 2 Feb 18 17:40 /dev/ttyp2 When IAXmodem is used with HylaFAX the faxgetty process will change the ownership of the device to _hylafax. So far, no problems have been observed with this behaviour. lrwxr-xr-x 1 root wheel 10 Feb 18 17:40 /dev/ttyIAX -> /dev/ttyp1 lrwxr-xr-x 1 root wheel 10 Feb 18 17:40 /dev/ttyIAX2 -> /dev/ttyp2 lrwxr-xr-x 1 root wheel 10 Feb 18 17:40 /dev/ttyIAX3 -> /dev/ttyp0 crw-rw---- 1 _hylafax dialer 5, 0 Feb 18 18:00 /dev/ttyp0 crw-rw---- 1 _iaxmodem dialer 5, 1 Feb 18 17:40 /dev/ttyp1 crw-rw---- 1 _hylafax dialer 5, 2 Feb 18 18:00 /dev/ttyp2 diff -Nupr /usr/ports/telephony/iaxmodem/Makefile ./Makefile --- /usr/ports/telephony/iaxmodem/Makefile Tue Nov 7 22:19:46 2023 +++ ./Makefile Wed Feb 18 17:01:35 2026 @@ -1,9 +1,8 @@ COMMENT= a software fax modem that uses an IAX channel -DISTNAME= iaxmodem-1.3.4 +DISTNAME= iaxmodem-1.3.5 CATEGORIES= telephony SITES= ${SITE_SOURCEFORGE:=iaxmodem/} -REVISION= 0 HOMEPAGE= https://iaxmodem.sourceforge.net/ diff -Nupr /usr/ports/telephony/iaxmodem/distinfo ./distinfo --- /usr/ports/telephony/iaxmodem/distinfo Tue Apr 18 22:19:39 2023 +++ ./distinfo Sun Feb 15 23:12:16 2026 @@ -1,2 +1,2 @@ -SHA256 (iaxmodem-1.3.4.tar.gz) = kA3i93ByvOAnhv5/TU3f1Ln1/jJVsTGXcjgwma3uVjM= -SIZE (iaxmodem-1.3.4.tar.gz) = 2699179 +SHA256 (iaxmodem-1.3.5.tar.gz) = +kWKXlwxQbKeuIDaItMl3v1TyefFYBYuwA4F7sQUNRw= +SIZE (iaxmodem-1.3.5.tar.gz) = 2718449 diff -Nupr /usr/ports/telephony/iaxmodem/patches/patch-config_ttyIAX ./patches/patch-config_ttyIAX --- /usr/ports/telephony/iaxmodem/patches/patch-config_ttyIAX Thu Jan 1 08:00:00 1970 +++ ./patches/patch-config_ttyIAX Mon Feb 16 13:01:21 2026 @@ -0,0 +1,23 @@ +--- config.ttyIAX.orig Wed Jun 24 22:29:03 2015 ++++ config.ttyIAX Mon Feb 16 13:00:24 2026 +@@ -6,16 +6,17 @@ InternationalPrefix: 011 + DialStringRules: etc/dialrules + ServerTracing: 0xFFF + SessionTracing: 0xFFF +-RecvFileMode: 0600 ++RecvFileMode: 0640 + LogFileMode: 0600 +-DeviceMode: 0600 ++DeviceMode: 0660 + RingsBeforeAnswer: 1 + SpeakerVolume: off +-GettyArgs: "-h %l dx_%s" ++GettyArgs: "std.%s" + LocalIdentifier: "IAXmodem" + TagLineFont: etc/lutRS18.pcf + TagLineFormat: "From %%l|%c|Page %%P of %%T" + MaxRecvPages: 200 ++Class1JBIGSupport: receive + # + # + # Modem-related stuff: should reflect modem command interface diff -Nupr /usr/ports/telephony/iaxmodem/patches/patch-iaxmodem-cfg_ttyIAX ./patches/patch-iaxmodem-cfg_ttyIAX --- /usr/ports/telephony/iaxmodem/patches/patch-iaxmodem-cfg_ttyIAX Sat Mar 12 03:58:31 2022 +++ ./patches/patch-iaxmodem-cfg_ttyIAX Tue Feb 17 03:05:35 2026 @@ -1,9 +1,9 @@ ---- iaxmodem-cfg.ttyIAX.orig Sun Apr 20 22:18:51 2008 -+++ iaxmodem-cfg.ttyIAX Sun Apr 20 22:19:30 2008 +--- iaxmodem-cfg.ttyIAX.orig Wed Jun 24 22:29:03 2015 ++++ iaxmodem-cfg.ttyIAX Fri Feb 13 07:36:57 2026 @@ -1,5 +1,5 @@ device /dev/ttyIAX -owner uucp:uucp -+owner uucp:dialer ++owner _iaxmodem:dialer mode 660 port 4570 refresh 300 diff -Nupr /usr/ports/telephony/iaxmodem/patches/patch-iaxmodem_c ./patches/patch-iaxmodem_c --- /usr/ports/telephony/iaxmodem/patches/patch-iaxmodem_c Tue Apr 18 22:19:39 2023 +++ ./patches/patch-iaxmodem_c Sun Feb 15 23:12:16 2026 @@ -35,7 +35,7 @@ Index: iaxmodem.c #ifndef MODEMVER #define MODEMVER "0.0.0" -@@ -169,6 +163,9 @@ int logmode = S_IRUSR | S_IWUSR | S_IRGRP; +@@ -184,6 +178,9 @@ #include "compat/headers.h" #include "sys/stropts.h" #endif @@ -45,13 +45,20 @@ Index: iaxmodem.c #ifdef __FreeBSD__ #include "compat/strndup-freebsd.c" -@@ -697,7 +694,8 @@ iaxmodem(const char *config, int nondaemon) +@@ -997,12 +994,13 @@ int fd; char logfile[256]; - printlog(LOG_ERROR, "Modem started\n"); + printlog(LOG_ERROR, "Modem %s started\n", config); -+ setproctitle("uucp [%s]",config); ++ setproctitle("_iaxmodem [%s]",config); - pwent = getpwnam("uucp"); +- pwent = getpwnam("uucp"); ++ pwent = getpwnam("_iaxmodem"); + + if (pwent == NULL) { +- printlog(LOG_ERROR, "Fatal error: uucp user not found in passwd file\n"); ++ printlog(LOG_ERROR, "Fatal error: _iaxmodem user not found in passwd file\n"); + _exit(-1); + } diff -Nupr /usr/ports/telephony/iaxmodem/pkg/PLIST ./pkg/PLIST --- /usr/ports/telephony/iaxmodem/pkg/PLIST Sat Mar 12 03:58:31 2022 +++ ./pkg/PLIST Wed Feb 18 17:05:00 2026 @@ -1,10 +1,15 @@ +@newgroup _iaxmodem:903 +@newuser _iaxmodem:903:_iaxmodem::IAXmodem Daemon:/nonexistent:/sbin/nologin @bin bin/iaxmodem @man man/man1/iaxmodem.1 share/doc/iaxmodem/ share/doc/iaxmodem/FAQ share/doc/iaxmodem/README share/examples/iaxmodem/ -@sample ${SYSCONFDIR}/iaxmodem/ share/examples/iaxmodem/hylafax-cfg.ttyIAX share/examples/iaxmodem/iaxmodem-cfg.ttyIAX +@mode 750 +@sample ${SYSCONFDIR}/iaxmodem/ +@mode @sample ${SYSCONFDIR}/iaxmodem/ttyIAX0 +@rcscript ${RCDIR}/iaxmodem diff -Nupr /usr/ports/telephony/iaxmodem/pkg/iaxmodem.rc ./pkg/iaxmodem.rc --- /usr/ports/telephony/iaxmodem/pkg/iaxmodem.rc Thu Jan 1 08:00:00 1970 +++ ./pkg/iaxmodem.rc Tue Feb 17 03:22:34 2026 @@ -0,0 +1,26 @@ +#!/bin/ksh +# + +daemon="${TRUEPREFIX}/bin/iaxmodem" + +. /etc/rc.d/rc.subr + + +pexp="$(eval echo ${daemon})" +rc_reload= +rc_reload_signal=HUP +rc_stop_signal=TERM + +rc_start() { + rc_exec "${daemon}" +} + +rc_reload() { + pkill -${rc_reload_signal} -xf "${pexp}" +} + +rc_stop() { + pkill -${rc_stop_signal} -xf "${pexp}" +} + +rc_cmd $1