blob: fea2470dbc6b7362dcccd920f6895f2a05753dd3 (
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
|
# $FreeBSD$
PORTNAME= openafs
DISTVERSION= ${AFS_DISTVERSION}.${DBVERSION:S/-//g}
CATEGORIES= net
MASTER_SITES= http://dl.central.org/dl/openafs/${AFS_DISTVERSION}/:openafs \
http://dl.openafs.org/dl/openafs/${AFS_DISTVERSION}/:openafs \
http://dl.central.org/dl/cellservdb/:gco \
http://grand.central.org/dl/cellservdb/:gco
DISTFILES= ${PORTNAME}-${AFS_DISTVERSION}-src.tar.bz2:openafs \
${PORTNAME}-${AFS_DISTVERSION}-doc.tar.bz2:openafs \
CellServDB.${DBVERSION}:gco
EXTRACT_ONLY= ${PORTNAME}-${AFS_DISTVERSION}-src.tar.bz2 \
${PORTNAME}-${AFS_DISTVERSION}-doc.tar.bz2
MAINTAINER= bjk@FreeBSD.org
COMMENT= AFS implementation from openafs.org
LICENSE= IPLv1
LICENSE_NAME= IBM Public License Version 1.0
LICENSE_FILE= ${WRKSRC}/doc/LICENSE
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
BROKEN= fails to build
ONLY_FOR_ARCHS= i386 amd64
AFS_DISTVERSION= 1.6.22
DBVERSION= 2016-01-01
USES= cpe kmod tar:bzip2
USE_LDCONFIG= yes
HAS_CONFIGURE= yes
CONFIGURE_ENV= _XCFLAGS="${CFLAGS} -fPIC" \
_PAM_CFLAGS="${CFLAGS} -fPIC" \
_MT_LIBS="-lpthread"
CONFIGURE_ARGS= --prefix=${PREFIX} \
--localstatedir=/var \
--mandir=${MANPREFIX}/man \
--with-bsd-kernel-headers=${SRC_BASE}/sys \
--with-bsd-kernel-build=${WRKDIR}/conf \
--enable-debug \
--enable-debug-kernel \
--enable-debug-lwp \
--includedir=${PREFIX}/include/openafs \
${CONFIGURE_TARGET}
WRKSRC= ${WRKDIR}/${PORTNAME}-${AFS_DISTVERSION}
MAKE_ENV= COMPILER_TYPE=${COMPILER_TYPE}
USE_RC_SUBR= afsserver
CPE_VERSION= ${AFS_DISTVERSION}
CONFLICTS= coda-server-6.[0-9]* heimdal-[0-9]*
MAKE_JOBS_UNSAFE= yes
AFSMNTDIR?= /afs
AFSSTATEDIR?= /var/${PORTNAME}
AFSCACHEDIR?= ${AFSSTATEDIR}/cache
PLIST_SUB+= AFSMNTDIR=${AFSMNTDIR:C,^/,,} \
AFSSTATEDIR=${AFSSTATEDIR:C,^/,,} \
AFSCACHEDIR=${AFSCACHEDIR:C,^/,,}
# clang (the base system compiler in __FreeBSD_version 1000024 and later)
# is pickier about stack alignment than gcc; OpenAFS uses its own
# lightweight process "threading" library which will produce a misaligned
# stack under clang; we need to pass -mstackrealign to avoid SIGBUS at
# runtime. gcc does not understand this flag, so we use compiler.mk to
# figure out what type of compiler is in use.
USES+= compiler
OPTIONS_DEFINE= FUSE
FUSE_USES= fuse
OPTIONS_SUB= yes
FUSE_CONFIGURE_OFF= --disable-fuse-client
.include <bsd.port.pre.mk>
.if ${COMPILER_TYPE} == clang
CFLAGS+= -mstackrealign
.endif
.if ${OSREL:R} >= 11
# Upstream does not support the client on 11 and newer
CONFIGURE_ARGS += --disable-kernel-module
PLIST_SUB+= KMOD="@comment "
post-install:
@${RMDIR} ${STAGEDIR}${PREFIX}/lib/openafs
.else
CONFIGURE_ARGS += --enable-kernel-module
PLIST_SUB+= KMOD=
USE_RC_SUBR+= afsd
KERNCONF?= GENERIC
KERNCONFDIR?= ${SRC_BASE}/sys/${ARCH}/conf
# Use the first component of ${KERNCONF}.
.for K in ${KERNCONF}
_KERNCONF?=$K
.endfor
.if !exists(${KERNCONFDIR}/${_KERNCONF})
IGNORE= requires kernel configuration file ${_KERNCONF} to build
.endif
# Do not show users the reminder about cleandepend and depend
post-extract:
${MKDIR} ${WRKDIR}/conf
cd ${KERNCONFDIR} && \
/usr/sbin/config -d ${WRKDIR}/conf ${_KERNCONF} >/dev/null
create-sample-files:
@${ECHO_CMD} openafs.org > ${WRKDIR}/ThisCell
@${ECHO_CMD} "${AFSMNTDIR}:${AFSCACHEDIR}:150000" > ${WRKDIR}/cacheinfo
${INSTALL_DATA} ${DISTDIR}/CellServDB.${DBVERSION} ${WRKDIR}/CellServDB
post-install: create-sample-files
@${MKDIR} ${STAGEDIR}${ETCDIR}
.for F in CellServDB ThisCell cacheinfo
${INSTALL_DATA} ${WRKDIR}/${F} ${STAGEDIR}${ETCDIR}/${F}.sample
.endfor
${INSTALL_KLD} ${STAGEDIR}${PREFIX}/lib/openafs/libafs.ko \
${STAGEDIR}${KMODDIR}
@${RM} ${STAGEDIR}${PREFIX}/lib/openafs/libafs.ko
@${RMDIR} ${STAGEDIR}${PREFIX}/lib/openafs
@${MKDIR} ${STAGEDIR}${AFSMNTDIR} \
${STAGEDIR}${AFSSTATEDIR} ${STAGEDIR}${AFSCACHEDIR}
.endif # ${OSREL} blacklist
.include <bsd.port.post.mk>
|