Download raw body.
[PATCH] comms/hylafax
On Fri, Sep 18, 2026 at 02:18:49PM +0100, Stuart Henderson wrote:
> > +++ ./pkg/hylafax.rc Sun Jul 5 19:01:32 2026
> > @@ -0,0 +1,21 @@
> > +#!/bin/ksh
> > +
> > +# "meta" script running the following rc.d(8) scripts with the given argument;
> > +# note that "daemon_*" variables are not passed to the child scripts.
> > +_pkg_scripts="faxq hfaxd"
>
> I _think_ we wanted to avoid these meta scripts; Antoine, do I remember
> correctly?
Yeah, these are weird exceptions we want to prevent.
> > +@mode 555
> > libdata/hylafax/etc/faxmail/application/binary
> > libdata/hylafax/etc/faxmail/application/octet-stream
> > libdata/hylafax/etc/faxmail/application/pdf
> > +@mode
>
> I have a better fix for this in patch-port_install_sh_in.
>
> Also the old PLIST was always running "ln -sf %D/libdata/hylafax
> /var/spool/hylafax", resulting in an extraneous link from
> /var/spool/hylafax/hylafax -> /usr/local/libdata/hylafax, I've fixed
> that by only running ln if /var/spool/hylafax doesn't exist.
>
> Updated diff below with the above and a few other small tweaks,
> but we may want to remove hylafax.rc on top.
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/comms/hylafax/Makefile,v
> diff -u -p -r1.93 Makefile
> --- Makefile 26 Mar 2026 09:12:23 -0000 1.93
> +++ Makefile 18 Sep 2026 13:13:59 -0000
> @@ -1,14 +1,14 @@
> COMMENT= send/receive faxes and share modems
>
> DISTNAME= hylafax-7.0.11
> -REVISION= 0
> +REVISION= 1
> CATEGORIES= comms
>
> HOMEPAGE= https://hylafax.sourceforge.io/
> SITES= ${SITE_SOURCEFORGE:=hylafax/}
>
> # License: BSD
> -# http://www.hylafax.org/HylaFAQ/copyright.html
> +# https://sourceforge.net/p/hylafax/HylaFAX+/HEAD/tree/trunk/COPYRIGHT
> PERMIT_PACKAGE= Yes
>
> FLAVORS= a4
> @@ -47,7 +47,8 @@ CONFIGURE_ARGS= --nointeractive \
> --with-SCRIPT_SH="/bin/ksh" \
> --with-INSTALLROOT="${DESTDIR}" \
> --with-DIR_MAN="${TRUEPREFIX}/man" \
> - --with-DIR_LIBDATA="${TRUEPREFIX}/libdata/hylafax/etc"
> + --with-DIR_LIBDATA="${TRUEPREFIX}/libdata/hylafax/etc" \
> + --with-PATH_AFM="${TRUEPREFIX}/share/fonts/ghostscript"
>
> CONFIGURE_ENV+= DISABLE_PODOFO=yes
>
> Index: patches/patch-etc_faxsetup_sh_in
> ===================================================================
> RCS file: /cvs/ports/comms/hylafax/patches/patch-etc_faxsetup_sh_in,v
> diff -u -p -r1.5 patch-etc_faxsetup_sh_in
> --- patches/patch-etc_faxsetup_sh_in 25 Mar 2026 15:47:01 -0000 1.5
> +++ patches/patch-etc_faxsetup_sh_in 18 Sep 2026 13:13:59 -0000
> @@ -21,18 +21,68 @@ Index: etc/faxsetup.sh.in
> PASSWD=/etc/passwd # where to go for password entries
> PROTOUID=@FAXUID@ # user who's uid we use for FAX user
> defPROTOUID=3 # use this uid if PROTOUID doesn't exist
> -@@ -1265,7 +1265,7 @@ if onClient; then
> +@@ -1259,34 +1259,67 @@ if onClient; then
> + }
> + '
> + }
> ++ genFontmap()
> ++ {
> ++ FONTMAP_FILE=$1
> ++ Note ""
> ++ Note "Generating Fontmap $FONTMAP_FILE."
> ++ Note ""
> ++
> ++ $ECHO "% HylaFAX FontMap file generated by faxsetup on `date 2>/dev/null`" > $FONTMAP_FILE
> ++ for d in `$ECHO $2 | $SED 's/:/ /g'`; do
> ++ if [ -d "$d" ]; then
> ++ cd $d
> ++ for f in `ls | grep '\.afm'`; do
> ++ $AWK -F '[ ]' '/FontName/ {print "/"$2"\t("FILENAME")\t;"; exit}; // {}' $f >> $FONTMAP_FILE
> ++ done
> ++ fi
> ++ done
> ++ if [ -z "`$GREP Courier $FONTMAP_FILE`" ]; then
> ++ Note ""
> ++ Note "Adding aliases to Fontmap $FONTMAP_FILE."
> ++ Note ""
> ++ $ECHO "" >> $FONTMAP_FILE
> ++ $ECHO "% Aliases" >> $FONTMAP_FILE
> ++ $ECHO "" >> $FONTMAP_FILE
> ++ $ECHO "/Courier /NimbusMonL-Regu ;" >> $FONTMAP_FILE
> ++ $ECHO "/Courier-Bold /NimbusMonL-Bold ;" >> $FONTMAP_FILE
> ++ $ECHO "/Helvetica /NimbusSanL-Regu ;" >> $FONTMAP_FILE
> ++ $ECHO "/Helvetica-Oblique /NimbusSanL-ReguItal ;" >> $FONTMAP_FILE
> ++ $ECHO "/Helvetica-Bold /NimbusSanL-Bold ;" >> $FONTMAP_FILE
> ++ $ECHO "/Times-Bold /NimbusRomNo9L-Medi ;" >> $FONTMAP_FILE
> ++ fi
> ++ }
> + # If configure --with-PATH_AFM=<path> was used then we need to include it first.
> + RUNTIME_PATH_AFM=$PATH_AFM:`getGSFonts`
> + if [ -n "$RUNTIME_PATH_AFM" \
> -a "$RUNTIME_PATH_AFM" != "$PATH_AFM" ]; then
> Note ""
> ++ #
> ++ # When ghostscript is built with COMPILE_INITS=1, the fonts are compiled in to the ghostscript executable.
> ++ # The textfmt(1) program in HylaFAX uses fonts in afm font files.
> ++ # The Fontmap.HylaFAX file is created from afm font files found in the paths listed in RUNTIME_PATH_AFM.
> ++ #
> ++ genFontmap $DIR_SPOOL/etc/Fontmap.HylaFAX $RUNTIME_PATH_AFM
> FONTPATHS=`echo $RUNTIME_PATH_AFM | sed 's/:/ /g'`
> - $PATH_GSRIP -q -sDEVICE=tiffg3 -sFONTPATH="$FONTPATHS" $DIR_SPOOL/bin/genfontmap.ps > $DIR_SPOOL/etc/Fontmap.HylaFAX 2>/dev/null
> -+ $PATH_GSRIP -q -dNOSAFER -sDEVICE=tiffg3 -sFONTPATH="$FONTPATHS" $DIR_SPOOL/bin/genfontmap.ps > $DIR_SPOOL/etc/Fontmap.HylaFAX 2>/dev/null
> - # Ghostscript 8.71 segfaults on that, but produces a valid Fontmap file, so we don't test exit code, but examine the product, instead.
> +- # Ghostscript 8.71 segfaults on that, but produces a valid Fontmap file, so we don't test exit code, but examine the product, instead.
> {
> #
> -@@ -1280,8 +1280,8 @@ if onClient; then
> +- # genfontmap.ps really just gives us a copy of Fontmap.GS, and in later Ghostscript versions there
> +- # are many Fontmap.GS references that are left undefined. This may work for Ghostscript, but
> +- # it does not work for us. So, we need to do what we can to define them.
> +- #
> + fontmap=$DIR_SPOOL/etc/Fontmap.HylaFAX
> + newfontmap=$TMPDIR/Fontmap.HylaFAX.new.$$
> + tmpfile=$TMPDIR/fontmap-fixup.$$
> + $CP $fontmap $newfontmap
> for fontname in `$CAT $fontmap | $GREP " /" | $SED -e 's/^[^\/]*\///g' -e 's/ .*//g'`; do
> - if [ -z "`$GREP "^($fontname)" $fontmap`" ]; then
> +- if [ -z "`$GREP "^($fontname)" $fontmap`" ]; then
> ++ if [ -z "`$GREP "^/$fontname" $fontmap`" ]; then
> # There is a blind reference to this font. Fix that.
> - for fontpath in `$PATH_GSRIP -h | $GREP -A 100 "Search path:" | $GREP " :" | $SED 's/://g'`; do
> - $GREP -l -d recurse -a "FontDirectory/$fontname known" $fontpath 2>/dev/null;
> @@ -41,7 +91,16 @@ Index: etc/faxsetup.sh.in
> done | $SED q > $tmpfile
> fontfile=`$CAT $tmpfile`
> if [ -n "$fontfile" ]; then
> -@@ -2425,12 +2425,7 @@ if onServer; then
> +- echo "($fontname) ($fontfile) ;" >> $newfontmap
> +- else
> ++ $ECHO "/$fontname ($fontfile) ;" >> $newfontmap
> ++ fi
> ++ fontalias=`$ECHO $fontname | $SED -e 's/^\/*\///g'`
> ++ if [ -z "`$GREP "^/$fontalias" $fontmap`" ]; then
> + echo "Warning: No font file found for \"$fontname\" but the font map includes it."
> + fi
> + fi
> +@@ -2425,12 +2458,7 @@ if onServer; then
>
> findproc()
> {
> @@ -55,3 +114,54 @@ Index: etc/faxsetup.sh.in
> echo "$pid"
> }
>
> +@@ -2446,9 +2474,9 @@ if onServer; then
> + echo
> + fi
> + if isOK "$x"; then
> +- if [ -x /bin/systemctl ]; then
> +- echo "Executing '/bin/systemctl stop hylafax-hfaxd'..."
> +- /bin/systemctl stop hylafax-hfaxd
> ++ if [ -x /usr/sbin/rcctl ]; then
> ++ echo "Executing '/usr/sbin/rcctl stop hfaxd'..."
> ++ /usr/sbin/rcctl stop hfaxd
> + elif kill $HFAXD; then
> + echo "Sent a SIGTERM to processes $HFAXD."
> + else
> +@@ -2497,9 +2525,9 @@ EOF
> + echo
> + fi
> + if isOK "$x"; then
> +- if [ -x /bin/systemctl ]; then
> +- echo "Executing '/bin/systemctl stop hylafax-faxq'..."
> +- /bin/systemctl stop hylafax-faxq
> ++ if [ -x /usr/sbin/rcctl ]; then
> ++ echo "Executing '/usr/sbin/rcctl stop faxq'..."
> ++ /usr/sbin/rcctl stop faxq
> + else
> + $DIR_SBIN/faxquit >/dev/null 2>&1
> + fi
> +@@ -2589,18 +2617,18 @@ EOF
> + fi
> + if isOK "$x"; then
> + echo ""
> +- if [ -x /bin/systemctl ]; then
> +- echo "Executing '/bin/systemctl start hylafax-faxq'..."
> +- /bin/systemctl start hylafax-faxq
> +- echo "Executing '/bin/systemctl start hylafax-hfaxd'..."
> +- /bin/systemctl start hylafax-hfaxd
> ++ if [ -x /usr/sbin/rcctl ]; then
> ++ echo "Executing '/usr/sbin/rcctl start faxq'..."
> ++ /usr/sbin/rcctl start faxq
> ++ echo "Executing '/usr/sbin/rcctl start hfaxd'..."
> ++ /usr/sbin/rcctl start hfaxd
> + elif [ -x ${DIR_SYSVINIT}/hylafax ]; then
> + echo ${DIR_SYSVINIT}/hylafax start
> + ${DIR_SYSVINIT}/hylafax start
> + else
> + echo $DIR_SBIN/faxq; $DIR_SBIN/faxq
> + hfaxdopts=
> +- if isOK "$HFAXD_SERVER"; then hfaxdopts="-i hylafax "; fi
> ++ if isOK "$HFAXD_SERVER"; then hfaxdopts="-f all -l 0.0.0.0 -i hylafax -l ::0 -i hylafax "; fi
> + if isOK "$HFAXD_SNPP_SERVER"; then hfaxdopts="$hfaxdopts\-s snpp"; fi
> + echo "$DIR_SBIN/hfaxd $hfaxdopts"; eval "$DIR_SBIN/hfaxd $hfaxdopts"
> + fi
> Index: patches/patch-etc_hylafax_in
> ===================================================================
> RCS file: patches/patch-etc_hylafax_in
> diff -N patches/patch-etc_hylafax_in
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-etc_hylafax_in 18 Sep 2026 13:13:59 -0000
> @@ -0,0 +1,38 @@
> +--- etc/hylafax.in.orig Wed Oct 13 03:42:48 2021
> ++++ etc/hylafax.in Sat Jul 11 07:20:51 2026
> +@@ -90,9 +90,6 @@ fi
> + if [ -z "$HFAXD_SNPP_SERVER" ]; then
> + HFAXD_SNPP_SERVER=@HFAXD_SNPP_SERVER@
> + fi
> +-if [ -z "$HFAXD_ARGS" ]; then
> +- HFAXD_ARGS=
> +-fi
> +
> + IS_ON=/etc/chkconfig # NB: chkconfig is IRIX- and Linux-specific
> + FAXQ=$SBIN/faxq
> +@@ -101,6 +98,10 @@ FAXQUIT=$SBIN/faxquit
> + FAXPORT=hylafax # designated port for new protocol
> + SNPPPORT=444 # official port for SNPP
> +
> ++if [ -z "$HFAXD_ARGS" ]; then
> ++ HFAXD_ARGS="-f all -l 0.0.0.0 -i $FAXPORT -l ::0 "
> ++fi
> ++
> + if test ! -x $IS_ON ; then
> + IS_ON=true
> + fi
> +@@ -150,13 +151,7 @@ fi
> + #
> + killall()
> + {
> +- # NB: ps ax should give an error on System V, so we try it first!
> +- pid="`ps ax 2>/dev/null | $AWK \"\
> +- /[\/ (]$2[ )]/ {print \\$1;}
> +- /[\/ ]$2\$/ {print \\$1;}\"`"
> +- test "$pid" ||
> +- pid="`ps -e 2>/dev/null | $AWK \"/ $2[ ]*\$/ {print \\$1;}\"`"
> +- test "$pid" && kill $1 $pid; return
> ++ /usr/bin/pkill $1 $2
> + }
> +
> + do_start()
> Index: patches/patch-faxd_FaxMachineLog_c++
> ===================================================================
> RCS file: patches/patch-faxd_FaxMachineLog_c++
> diff -N patches/patch-faxd_FaxMachineLog_c++
> --- patches/patch-faxd_FaxMachineLog_c++ 25 Mar 2026 15:47:01 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,15 +0,0 @@
> -Index: faxd/FaxMachineLog.c++
> ---- faxd/FaxMachineLog.c++.orig
> -+++ faxd/FaxMachineLog.c++
> -@@ -70,7 +70,11 @@ FaxMachineLog::FaxMachineLog(int f, const fxStr& numbe
> - struct loggingThreadData *r = (struct loggingThreadData *) malloc(sizeof(struct loggingThreadData));
> - r->pfd = lpfd[0];
> - r->wfd = fd;
> -+#if defined(__OpenBSD__)
> -+ if (1) { // loggingThread has SIGABRTs in OpenBSD
> -+#else
> - if (pthread_create(<, NULL, &loggingThread, (void *) r) != 0) {
> -+#endif
> - if (lpfd[0] > 0) Sys::close(lpfd[0]);
> - if (lpfd[1] > 0) Sys::close(lpfd[1]);
> - lpfd[0] = -1;
> Index: patches/patch-faxd_sslfaxproxy_c++
> ===================================================================
> RCS file: /cvs/ports/comms/hylafax/patches/patch-faxd_sslfaxproxy_c++,v
> diff -u -p -r1.1 patch-faxd_sslfaxproxy_c++
> --- patches/patch-faxd_sslfaxproxy_c++ 25 Mar 2026 15:47:01 -0000 1.1
> +++ patches/patch-faxd_sslfaxproxy_c++ 18 Sep 2026 13:13:59 -0000
> @@ -10,3 +10,11 @@ Index: faxd/sslfaxproxy.c++
> timeval curTime;
> gettimeofday(&curTime, 0);
> return curTime;
> +@@ -94,6 +94,7 @@ sslFaxThread(void* sd)
> + done:
> + Sys::close(s->wfd);
> + Sys::close(s->rfd);
> ++ free(sd);
> + return (NULL);
> + }
> +
> Index: patches/patch-port_install_sh_in
> ===================================================================
> RCS file: patches/patch-port_install_sh_in
> diff -N patches/patch-port_install_sh_in
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-port_install_sh_in 18 Sep 2026 13:13:59 -0000
> @@ -0,0 +1,12 @@
> +Index: port/install.sh.in
> +--- port/install.sh.in.orig
> ++++ port/install.sh.in
> +@@ -213,7 +213,7 @@ install()
> + do_chXXX $CHGRP $target
> + fi
> + $VERBOSE "$CHMOD $target"
> +- do_chXXX $CHMOD $target
> ++ $CHMOD $target
> + if [ $STRIP != ":" ] && [ -x $ROOT$DESTDIR$f ]; then
> + $STRIP $target >/dev/null 2>&1 || true
> + $VERBOSE "$STRIP $target"
> Index: pkg/MESSAGE
> ===================================================================
> RCS file: pkg/MESSAGE
> diff -N pkg/MESSAGE
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ pkg/MESSAGE 18 Sep 2026 13:13:59 -0000
> @@ -0,0 +1,4 @@
> +If you've updated your installation from an earlier version of HylaFAX 7.0.11,
> +update your Fontmap.HylaFAX file by running:
> +
> + # ${PREFIX}/sbin/faxsetup -client
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/comms/hylafax/pkg/PLIST,v
> diff -u -p -r1.25 PLIST
> --- pkg/PLIST 25 Mar 2026 15:47:01 -0000 1.25
> +++ pkg/PLIST 18 Sep 2026 13:13:59 -0000
> @@ -3,7 +3,7 @@
> @newuser _hylafax:902:_hylafax::HylaFAX Server:/var/spool/hylafax:/sbin/nologin
> @rcscript ${RCDIR}/faxq
> @rcscript ${RCDIR}/hfaxd
> -@mode 555
> +@rcscript ${RCDIR}/hylafax
> @bin bin/faxalter
> @bin bin/faxcover
> @bin bin/faxmail
> @@ -11,20 +11,15 @@
> @bin bin/faxstat
> @bin bin/sendfax
> @bin bin/sendpage
> -@mode
> @owner _hylafax
> @group dialer
> libdata/hylafax/
> libdata/hylafax/COPYRIGHT
> libdata/hylafax/archive/
> libdata/hylafax/bin/
> -@mode 555
> libdata/hylafax/bin/archive
> -@mode
> libdata/hylafax/bin/auto-rotate.ps
> -@mode 555
> libdata/hylafax/bin/common-functions
> -@mode
> libdata/hylafax/bin/dict/
> libdata/hylafax/bin/dict/de
> libdata/hylafax/bin/dict/en
> @@ -42,12 +37,9 @@ libdata/hylafax/bin/dict/sr
> libdata/hylafax/bin/dict/tr
> libdata/hylafax/bin/dict/uk
> libdata/hylafax/bin/dict/zh
> -@mode 555
> libdata/hylafax/bin/dictionary
> libdata/hylafax/bin/faxrcvd
> -@mode
> libdata/hylafax/bin/genfontmap.ps
> -@mode 555
> libdata/hylafax/bin/mkcover
> libdata/hylafax/bin/notify
> libdata/hylafax/bin/pcl2fax
> @@ -56,14 +48,11 @@ libdata/hylafax/bin/pollrcvd
> libdata/hylafax/bin/ps2fax.dps
> libdata/hylafax/bin/ps2fax.gs
> libdata/hylafax/bin/ps2fax.imp
> -@mode
> libdata/hylafax/bin/qp-encode.awk
> libdata/hylafax/bin/rfc2047-encode.awk
> -@mode 555
> libdata/hylafax/bin/tiff2fax
> libdata/hylafax/bin/tiff2pdf
> libdata/hylafax/bin/wedged
> -@mode
> libdata/hylafax/client/
> libdata/hylafax/config/
> libdata/hylafax/config/att-dataport
> @@ -164,7 +153,6 @@ libdata/hylafax/etc/faxmail/application/
> libdata/hylafax/etc/faxmail/application/pdf
> libdata/hylafax/etc/faxmail/image/
> libdata/hylafax/etc/faxmail/image/tiff
> -@mode 644
> libdata/hylafax/etc/hfaxd.conf
> @mode 600
> libdata/hylafax/etc/hosts.hfaxd
> @@ -254,7 +242,6 @@ libdata/hylafax/tmp/
> @man man/man8/typetest.8c
> @man man/man8/wedged.8c
> @man man/man8/xferfaxstats.8c
> -@mode 555
> @bin sbin/choptest
> @bin sbin/cqtest
> @bin sbin/dialtest
> @@ -295,9 +282,8 @@ sbin/recvstats
> @bin sbin/tsitest
> @bin sbin/typetest
> sbin/xferfaxstats
> -@mode
> share/doc/pkg-readmes/${PKGSTEM}
> -@exec ln -sf %D/libdata/hylafax /var/spool/hylafax
> +@exec [ -e /var/spool/hylafax ] || ln -sf %D/libdata/hylafax /var/spool/hylafax
> @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
> Index: pkg/README
> ===================================================================
> RCS file: /cvs/ports/comms/hylafax/pkg/README,v
> diff -u -p -r1.10 README
> --- pkg/README 25 Mar 2026 15:47:01 -0000 1.10
> +++ pkg/README 18 Sep 2026 13:13:59 -0000
> @@ -25,10 +25,18 @@ something like this:
> and send a SIGHUP to init(8).
>
>
> +Updating HylaFAX+ fontmap file
> +==============================
> +To refresh or create a missing HylaFAX fontmap file after an update simply run;
> +
> + # ${TRUEPREFIX}/sbin/faxsetup -client
> +
> +
> Updating file ownership to use the new _hylafax account
> =======================================================
> -To update the ownership of directories and files in the HylaFAX spool directory,
> -perform one of the following.
> +Old versions (6.x) of this package used the legacy UUCP account. This was
> +changed to _hylafax when moving to 7.x. If your HylaFAX spool directory
> +still contains files owned by _uucp / uid 66, update the ownership as follows.
>
> If the legacy UUCP account is still registerd;
>
> Index: pkg/hylafax.rc
> ===================================================================
> RCS file: pkg/hylafax.rc
> diff -N pkg/hylafax.rc
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ pkg/hylafax.rc 18 Sep 2026 13:13:59 -0000
> @@ -0,0 +1,21 @@
> +#!/bin/ksh
> +
> +# "meta" script running the following rc.d(8) scripts with the given argument;
> +# note that "daemon_*" variables are not passed to the child scripts.
> +_pkg_scripts="faxq hfaxd"
> +
> +if [[ $1 == restart ]]; then
> + $0 stop && $0 start
> + exit
> +fi
> +
> +if [[ $1 == stop ]]; then
> + for _i in ${_pkg_scripts}; do _l="${_i} ${_l}"; done
> + _pkg_scripts=${_l% }
> +fi
> +
> +for _i in ${_pkg_scripts}; do
> + if [[ -x /etc/rc.d/${_i} ]]; then
> + /etc/rc.d/${_i} $@ || exit $?
> + fi
> +done
--
Antoine
[PATCH] comms/hylafax