summaryrefslogtreecommitdiff
path: root/net/arla/Makefile
blob: 0159dd267ca3cf2ce3a8431efb351237345fe063 (plain)
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
# $NetBSD: Makefile,v 1.2 2000/06/30 13:35:54 wennmach Exp $
#

DISTNAME=		arla-0.33
CATEGORIES=		net security
MASTER_SITES=		ftp://ftp.stacken.kth.se/pub/arla/

MAINTAINER=		wennmach@netbsd.org
HOMEPAGE=		http://www.stacken.kth.se/project/arla/

DEPENDS+=		kth-krb4-1.0.1:../../security/kth-krb4

GNU_CONFIGURE=		yes
CONFIGURE_ARGS+=	--with-krb4=${PREFIX}
.if defined(ARLA_CACHE)
CONFIGURE_ARGS+=	--with-arlacachedir=${ARLA_CACHE}
.endif

PLIST_SRC=		${WRKDIR}/PLIST
MESSAGE_FILE=		${WRKDIR}/MESSAGE

.include "../../mk/bsd.prefs.mk"

.if defined(ARLA_CACHE)
CACHEDIR=		${ARLA_CACHE}
.else
CACHEDIR=		${LOCALBASE}/cache
.endif

post-patch:
# This is ugly. Utterly ugly. Sigh.
# kth-krb4 and arla both have their own, different, versions or libroken.
# To resolve this conflict, which manifests in the inability to recompile
# kth-krb4 once it is installed, we rename arla's roken to arla-roken.
	@${ECHO} "===> Applying more NetBSD patches for ${DISTNAME}"
	@${ECHO} -n "=> Patching configure,"
	@${MV} ${WRKSRC}/configure ${WRKSRC}/configure.old
# Notice, the following sed produces some funny comments in configure :-)
	@${SED} -e 's/roken/arla-roken/g' ${WRKSRC}/configure.old > ${WRKSRC}/configure
	@${CHMOD} 755 ${WRKSRC}/configure
	@${ECHO} -n " Makefile.in,"
	@for file in `${FIND} ${WRKSRC} -name Makefile.in -print`; {          \
		${MV} $$file $$file.old;                                      \
		${SED} -e 's/roken/arla-roken/g' $$file.old > $$file;         \
	}
	@${ECHO} -n " .c files,"
	@for file in `${FIND} ${WRKSRC} -name "*.c" -print`; {                \
		${MV} $$file $$file.old;                                      \
		${SED} -e 's/roken.h/arla-roken.h/g' $$file.old > $$file;     \
	}
	@${ECHO} -n " .h files,"
	@for file in `${FIND} ${WRKSRC} -name "*.h" -print`; {                \
		${MV} $$file $$file.old;                                      \
		${SED} -e 's/roken.h/arla-roken.h/g' $$file.old > $$file;     \
	}
	@${ECHO} -n " .y files,"
	@for file in `${FIND} ${WRKSRC} -name "*.y" -print`; {                \
		${MV} $$file $$file.old;                                      \
		${SED} -e 's/roken.h/arla-roken.h/g' $$file.old > $$file;     \
	}
	@${ECHO} -n " .l files"
	@for file in `${FIND} ${WRKSRC} -name "*.l" -print`; {                \
		${MV} $$file $$file.old;                                      \
		${SED} -e 's/roken.h/arla-roken.h/g' $$file.old > $$file;     \
	}
	@${ECHO} "."
	@${MV} ${WRKSRC}/lib/roken/roken.h ${WRKSRC}/lib/roken/arla-roken.h
	@${MV} ${WRKSRC}/lib/roken ${WRKSRC}/lib/arla-roken

do-configure:
# *Sometimes* it's bad to try to be too smart:
# pkgsrc's LDFLAGS choice is completely inadequate for arla, since
# arla's configure uses $LDFLAGS as flags for $LD, whereas
# pkgsrc's LDFLAGS are conceived to be used with $CC
# So, basically, bsd.pkg.mk sets LDFLAGS=-Wl,-R${LOCALBASE}
# while arla expects LDFLAGS=-R${LOCALBASE}
	@(LDFLAGS= ; cd ${WRKSRC}; ./configure ${CONFIGURE_ARGS})

pre-install:
	@${SED} -e 's|@ARLA_CACHE@|${CACHEDIR}|g'                             \
		<${PKGDIR}/PLIST                                              \
		>${PLIST_SRC}
	@${SED} -e 's|@PREFIX@|${PREFIX}|g'                                   \
		-e 's|@ARLA_CACHE@|${CACHEDIR}|g'                             \
		<${PKGDIR}/MESSAGE                                            \
		>${MESSAGE_FILE}

post-install:
	@${ECHO} " "
	@if [ -e ${CACHEDIR} ]; then                                          \
		${ECHO} "Arla cache dir (${CACHEDIR}) already exists";        \
	else                                                                  \
		${ECHO} "Creating arla cache directory ${CACHEDIR}";          \
		${MKDIR} ${CACHEDIR};                                         \
		${CHMOD} 700 ${CACHEDIR};                                     \
		${CHOWN} root ${CACHEDIR};                                    \
	fi
	@if [ -e /sbin/mount_xfs ]; then                                      \
		${ECHO} "/sbin/mount_xfs already exists";                     \
	else                                                                  \
		${ECHO} "Creating /sbin/mount_xfs";                           \
		${LN} -s ${PREFIX}/bin/mount_xfs /sbin/mount_xfs;             \
	fi
	@-${MKDIR} ${PREFIX}/share/examples/arla
	@${SED} -e 's|@PREFIX@|${PREFIX}|g'                                   \
		< ${FILESDIR}/lkm.conf                                        \
		> ${PREFIX}/share/examples/arla/lkm.conf
	@if ${GREP} xfs_mod /etc/lkm.conf 2>/dev/null 1>&2 ; then             \
		${ECHO} "Not changing /etc/lkm.conf";                         \
	else                                                                  \
		${ECHO} "Appending to /etc/lkm.conf";                         \
		${CAT} ${PREFIX}/share/examples/arla/lkm.conf                 \
		>> /etc/lkm.conf;                                             \
	fi
	@${INSTALL} -c -o root -g wheel -m 444                                \
		 ${FILESDIR}/services ${PREFIX}/share/examples/arla
	@if ${GREP} afs3-bos /etc/services 2>/dev/null 1>&2 ; then            \
		${ECHO} "Not changing /etc/services";                         \
	else                                                                  \
		${ECHO} "Appending to /etc/services";                         \
		${CAT} ${PREFIX}/share/examples/arla/services                 \
			>> /etc/services;                                     \
	fi
	@${INSTALL} -c -o root -g wheel -m 444                                \
		 ${FILESDIR}/fstab ${PREFIX}/share/examples/arla
	@${SED} -e 's|@PREFIX@|${PREFIX}|' ${FILESDIR}/arlad.sh               \
		> ${PREFIX}/etc/rc.d/arlad.sh
	@${ECHO} " "

.include "../../mk/bsd.pkg.mk"