aboutsummaryrefslogtreecommitdiffstats
path: root/comms/hylafax/Makefile
blob: ab4142de177828bed7828e39b082a59a5976f386 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# ports collection makefile for:    hylafax
# Version required: v3.0pl0
# Date created:     16 May 1995
# Whom:         Julian Stacey <jhs@freebsd.org>
# To Replace:       flexfax v2.3beta038special
# Name changed from flexfax to hylafax by author of both: Sam Leffler.

DISTNAME=   hylafax-v3.0pl0
PKGNAME=    hylafax-3.0.0
CATEGORIES+=    comms
KEYWORDS+=  fax
MASTER_SITES=   ftp://ftp.sgi.com/sgi/fax/source/
EXTRACT_SUFX=   -tar.gz
HAS_CONFIGURE=  yes

MAINTAINER= jhs@FreeBSD.org

.if !exists(patches/patch-ab)
IS_INTERACTIVE= yes
#   patches/patch-ab makes this BATCH compilable,
#   ( If you need interactive config, rm patch-ab )
.endif

EXEC_DEPENDS+=  gs:${PORTSDIR}/print/ghostscript
EXEC_DEPENDS+=  bash:${PORTSDIR}/shells/bash

# Someone with more time & less space than me can investigate merging these.
# LIB_DEPENDS=      something:${PORTSDIR}/graphics/tiff
# ./libtiff has 2M, & may be duplicates of what is in ${PORTSDIR}/graphics/tiff
# LIB_DEPENDS=          something:${PORTSDIR}/print/afm
# ./afm/ has 536K of fonts, that perhaps could be merged.

FAXCOVER?= /etc/faxcover.ps
#   Default location to check for an optional over-riding host specific
#   customised faxcover that will be installed in these sources,
#   & end up where Hylafax installs all its stuff by default:
#   /var/spool/fax/etc/....
#   Note dont make FAXCOVER use a variable (such as ${PREFIX}),
#   as that wont work in `exists' below.

# ------------------------------------------------------------------------------

# We don't want INSTALL to be passed to configure
do-configure:
    @(cd ${WRKSRC}; CC="${CC}" ac_cv_path_CC="${CC}" CFLAGS="${CFLAGS}" \
        ./${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS})

post-configure:
.if exists(${FAXCOVER})
    @echo I see you have ${FAXCOVER},
    @echo which I will use to install a system default from.
    @# When I suggested to Sam (in the flexfax mailing list) merging
    @# in the distribution util/cover.templ & faxcover/faxcover.ps
    @# ( as they are virtually identical) Sam said they're for
    @# different things, & wouldn't do it.  I don't know what the
    @# different purposes are, & I Do succesfully use the same file.
    -cd ${WRKSRC} ; mv faxcover/faxcover.ps faxcover/faxcover.ps.mv
    -cd ${WRKSRC} ; mv util/cover.templ util/cover.templ.mv
    -cd ${WRKSRC} ; ln -s ../cover.ps faxcover/faxcover.ps
    -cd ${WRKSRC} ; ln -s ../cover.ps util/cover.templ
    -cd ${WRKSRC} ; ln -s ${FAXCOVER} cover.ps
.endif
.if exists(patches/patch-ab)
    @echo "patches/patch-ab has supressed interactive configuration."
    @# If you need interactive config, rm patch-ab
.endif

post-install:
    cd ${PREFIX}/bin ; strip \
        fax2ps faxalter faxcover faxmail faxrm faxstat sendfax sendpage
    cd ${PREFIX}/sbin ; strip faxd.recv faxgetty faxq
    cd ${PREFIX}/man/man1; \
        for man in fax2ps.1 faxalter.1 faxcover.1 faxmail.1 \
        faxrm.1 faxstat.1 hylafax.1 sendfax.1 sendpage.1 \
        sgi2fax.1 textfmt.1; do \
            gzip -9nf $$man; \
        done
    cd ${PREFIX}/man/man5; \
        for man in pagesizes.5f typerules.5f cid.5f config.5f \
        destctrls.5f dialrules.5f hosts.5f hylafax.5f info.5f \
        log.5f recvq.5f sendq.5f status.5f tsi.5f xferlog.5f; do \
        gzip -9nf $$man; \
        done
    cd ${PREFIX}/man/man8; \
        for man in dialtest.8c faxabort.8c faxaddmodem.8c \
        faxanswer.8c faxcron.8c faxd.recv.8c faxgetty.8c \
        faxq.8c faxquit.8c faxrcvd.8c faxsend.8c mkcover.8c \
        notify.8c pagesend.8c pollrcvd.8c ps2fax.8c \
        recvstats.8c tagtest.8c transcript.8c tsitest.8c \
        xferstats.8c; do \
        gzip -9nf $$man; \
        done
    @echo "Hylafax by default only does this sete[gu]id 0 stuff:"
    @echo " -u uucp -m 4755  faxq faxgetty"
    @echo "If you, like I, think it needs more, run 'make suid'"
    @echo "Now consider running faxaddmodem"

SUID_EXES=  /usr/local/sbin/faxgetty
SUID_EXES+= /usr/local/sbin/faxq
SUID_EXES+= /usr/local/bin/faxrm
SUID_EXES+= /usr/local/bin/faxalter
suid:
    @# This does too much, & may perhaps cause security loopholes,
    @# but default Hylafax doesnt do enough, eg faxrm wont work,
    @# & even worse, I have received a faxes that then silent failed
    @# to write to recvq.
    @# Only fax modem users who test their hypotheses may change this !
    @# (Imagine losing an important incoming fax, if recvq is unwritable.)
    chown uucp ${SUID_EXES}
    chgrp dialer ${SUID_EXES}
    chmod 6555 ${SUID_EXES}
    find /var/spool/fax -print | xargs chown uucp
    find /var/spool/fax -print | xargs chgrp dialer
    find /var/spool/fax -print | xargs chmod g+w
    find /var/spool/fax -print | xargs chmod g+r
    find /var/spool/fax -type d -print | xargs chmod g+x
    # now remove some x bits that get set by mistake.
    -cd /var/spool/fax ; chmod g-x FIFO* log/* status/* recvq/* sendq/* 
    @echo "Now nonsider doing somethink like this:"
    @echo " sh"
    @echo " n=1"
    @echo ' all="ttyd$$n ttyid$$n ttyld$$n cua0$$n cuai0$$n cual0$$n"'
    @echo ' chown uucp $$all; chgrp dialer $$all; chmod 660 $$all'

.include <bsd.port.mk>