aboutsummaryrefslogtreecommitdiffstats
path: root/security/krb5/Makefile
blob: 360f40add232dc8cb4dcef27303cdb834b82ea9f (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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# Ports collection Makefile for:    MIT Kerberos V
# Version required:         1.0.5
# Date created:             6/5/1998
# Whom:                 n@nectar.com
#
# $Id: Makefile,v 1.1.1.1 1998/07/06 02:28:39 nectar Exp $
#

DISTNAME=       krb5-1.0.5
CATEGORIES=     security
MASTER_SITES=       ftp://athena-dist.mit.edu/pub/kerberos/
DISTFILES=      krb5-1.0.5.src.tar.gz       \
            krb5-1.0.5.doc.tar.gz       \
            krb5-1.0.5.crypto.tar.gz

MAINTAINER=     n@nectar.com

BUILD_DEPENDS=      gm4:${PORTSDIR}/devel/m4

DIST_SUBDIR=        krb5

USE_GMAKE=      yes
GNU_CONFIGURE=      yes
CONFIGURE_ARGS?=    --enable-shared
KRB5_KRB4_COMPAT?=  YES

.if !defined(KRB5_KRB4_COMPAT) || ${KRB5_KRB4_COMPAT} == "NO"
CONFIGURE_ARGS+=    --without-krb4
.endif

RESTRICTED=     "Crypto; export-controlled"
# Set USA_RESIDENT appropriately in /etc/make.conf if you like

INFO_FILES=     krb425.info krb5-admin.info krb5-admin.info-1 \
            krb5-admin.info-2 krb5-admin.info-3 krb5-install.info \
            krb5-install.info-1 krb5-install.info-2 krb5-user.info

pre-fetch:
.if !defined(KRB5_KRB4_COMPAT)
    @${ECHO} "------------------------------------------------------"
    @${ECHO} "Set KRB5_KRB4_COMPAT=NO if you do not want to build   "
    @${ECHO} "the KerberosIV compatibility libraries.               "
    @${ECHO} "------------------------------------------------------"
.endif
.if !defined(USA_RESIDENT) || ${USA_RESIDENT} != "YES"
    @${ECHO}
    @${ECHO} ">> You must set the variable USA_RESIDENT to YES if you are"
    @${ECHO} "   a United States resident, otherwise NO."
    @${ECHO} "   If you are a US resident, understand that this software"
    @${ECHO} "   may be export restricted."
    @${ECHO} "   If you are not a US resident, then you cannot obtain"
    @${ECHO} "   Kerberos V source from a server within the United"
    @${ECHO} "   States.  You will have to find the source elsewhere,"
    @${ECHO} "   and put them in ${_DISTDIR}."
    @${FALSE}
.endif

MAN1=           krb5-send-pr.1 kpasswd.1 v5passwd.1 klist.1 kinit.1 \
            kdestroy.1 ksu.1 sclient.1 rsh.1 rcp.1 rlogin.1     \
            v4rcp.1 ftp.1 telnet.1 kerberos.1
MAN5=           kdc.conf.5 krb5.conf.5 .k5login.5
MAN8=           krb5kdc.8 kadmin.8 kadmin.local.8 kdb5_util.8 \
            ktutil.8 kadmind.8 kprop.8 kpropd.8 sserver.8 \
            kshd.8 klogind.8 login.krb5.8 ftpd.8 telnetd.8

WRKSRC=         ${WRKDIR}/${DISTNAME}/src
RECONF_COOKIE=      ${WRKDIR}/.reconf_done
README_KRB5=        README.KRB5-1.0.5
AWK_SCRIPT=     '(/1) Change into the directory/) { if (match($$0, "dist/[0-9]+")) print substr($$0, RSTART, RLENGTH) }'

WANT_HTML?=     YES
HTML_DOC_DIR=       ${WRKDIR}/${DISTNAME}/doc
HTML_DOCS=      admin.html install_foot.html user-guide.html          \
            admin_foot.html install_toc.html user-guide_foot.html \
            admin_toc.html krb425.html user-guide_toc.html        \
            install.html krb425_toc.html
SETUID_EXE=     bin/ksu bin/v4rcp

CHOWN?=     chown
SUPERUSER?= root

do-fetch:
    @${MKDIR} ${_DISTDIR}
    @(cd ${_DISTDIR};                 \
    if [ ! -f ${README_KRB5} ]; then  \
    for site in ${MASTER_SITES}; do   \
        ${ECHO_MSG} ">> Attempting to fetch ${README_KRB5} from $${site}."; \
        if ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${site}/${README_KRB5} \
            ${FETCH_AFTER_ARGS}; then \
            break;                    \
        fi                                \
    done; fi; ${DO_NADA})
    @(if [ ! -f ${_DISTDIR}/${README_KRB5} ]; then \
        ${ECHO_MSG} ">> Couldn't fetch it - please try to retrieve";  \
        ${ECHO_MSG} ">> this port manually into ${_DISTDIR} and try"; \
        ${ECHO_MSG} ">> again."; \
        ${FALSE};                \
    fi)
    @${MKDIR} ${_DISTDIR}
    @(cd ${_DISTDIR}; \
     secret=`${AWK} ${AWK_SCRIPT} < ${_DISTDIR}/${README_KRB5}`; \
     for file in ${DISTFILES}; do \
        if [ ! -f $$file -a ! -f `${BASENAME} $$file` ]; then \
            if [ -h $$file -o -h `${BASENAME} $$file` ]; then \
                ${ECHO_MSG} ">> ${_DISTDIR}/$$file is a broken symlink."; \
                ${ECHO_MSG} ">> Perhaps a filesystem (most likely a CD) isn't mounted?"; \
                ${ECHO_MSG} ">> Please correct this problem and try again."; \
                exit 1; \
            fi ; \
            ${ECHO_MSG} ">> $$file doesn't seem to exist on this system."; \
            for site in ${MASTER_SITES}; do \
                ${ECHO_MSG} ">> Attempting to fetch from $${site}/$${secret}."; \
                if ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${site}/$${secret}/$${file} ${FETCH_AFTER_ARGS}; then \
                    continue 2; \
                fi \
            done; \
            ${ECHO_MSG} ">> Couldn't fetch it - please try to retrieve this";\
            ${ECHO_MSG} ">> port manually into ${_DISTDIR} and try again."; \
            exit 1; \
        fi \
     done)

pre-configure: ${RECONF_COOKIE}

${RECONF_COOKIE}:
    @(cd ${WRKSRC}/util/autoconf && ./configure && gmake)
    @(cd ${WRKSRC} && ./util/reconf --force)
    ${TOUCH} ${RECONF_COOKIE}

post-build:
    @(cd ${WRKSRC}/../doc && \
    ${MAKE} ${INFO_FILES})

post-install:
# XXX Not sure why tmac.doc is installed here -- I don't think
#     we need it.  I should patch the distribution to not install
#     it, I think.
    @rm -f ${PREFIX}/man/man1/tmac.doc
# shared libs
    ${LDCONFIG} -m ${PREFIX}/lib
# html documentation
.if defined(WANT_HTML) && ${WANT_HTML} == "YES"
    @${MKDIR} ${PREFIX}/share/doc/krb5
.for html in ${HTML_DOCS}
    ${INSTALL_MAN} ${HTML_DOC_DIR}/${html} ${PREFIX}/share/doc/krb5
.endfor
.endif
# fixup setuid executables
.for setuid in ${SETUID_EXE}
    ${CHOWN} ${SUPERUSER} ${PREFIX}/${setuid}
.endfor
# handle info files
    if [ ! -f ${PREFIX}/info/dir ]; then \
        ${SED} -ne '1,/Menu:/p' /usr/share/info/dir > \
            ${PREFIX}/info/dir; \
    fi
.for info in ${INFO_FILES}
    ${INSTALL_MAN} ${WRKSRC}/../doc/${info} ${PREFIX}/info/${info}
.endfor
.for info in ${INFO_FILES:M*.info}
    install-info ${PREFIX}/info/${info} ${PREFIX}/info/dir
.endfor

.include <bsd.port.mk>