aboutsummaryrefslogtreecommitdiff
path: root/news/cnews/Makefile
blob: a4f84ce9caab9b2074b9bccdfc5076abf40e2ae3 (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
PORTNAME=	cnews
PORTVERSION=	cr.g
PORTREVISION=	21
CATEGORIES=	news
MASTER_SITES=	ftp://ftp.cs.toronto.edu/pub/c-news/ \
		ftp://ftp.funet.fi/pub/unix/news/cnews/ \
		ftp://ftp.redcom.ru/pub/unix/usenet/c-news/ \
		ftp://ftp.dinoex.org/pub/c-news/ \
		ftp://ftp.dinoex.org/pub/c-news/:pgp
DISTNAME=	c-news
DISTFILES=	${DISTNAME}${EXTRACT_SUFX} \
		pgpverify-1.29:pgp
EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}

PATCH_SITES=	ftp://ftp.dinoex.org/pub/c-news/
PATCHFILES=	c-news-patch-fileart.c c-news-patch-namelen \
		c-news-patch-newsrun c-news-patch-sendbatches2 \
		c-news-patch-ctl-pgp3 c-news-patch-ctl-more \
		c-news-patch-ctl-regexp \
		c-news-patch-doexpire c-news-patch-queuelen.tay \
		c-news-patch-bunzip2 \
		c-news-patch-ctl-underscore \
		c-news-patch-y2k-2 \
		c-news-patch-inews-path \
		c-news-patch-gawk3 \
		c-news-patch-ansi3

MAINTAINER=	dinoex@FreeBSD.org
COMMENT=	News server
WWW=		https://www.dinoex.net/c-news.html

LICENSE=	BSD2CLAUSE
LICENSE_FILE=	${WRKSRC}/COPYRIGHT

MAKE_JOBS_UNSAFE=	yes

USES=		tar:Z
USE_CSTD=	gnu89
CFLAGS+=	-Wno-return-type

CONFLICTS_INSTALL=	s-news trn4 # bin/inews

DIST_SUBDIR=	${DISTNAME}
NO_WRKSUBDIR=	yes
MAKEFILE=	makefile
SUB_FILES=	pkg-message
LMAN1=		checknews.1cn inews.1cn postnews.1cn readnews.1cn
LMAN5=		controlperm.5 news.5 newsctl.5 newsdb.5 newsoverview.5 \
		newssys.5
LMAN8=		cnewsdo.8cn expire.8cn explode.8cn mergeactive.8 \
		mkhistory.8cn newsaux.8cn newsbatch.8cn newsmail.8cn \
		newsmaint.8cn newsoverview.8 relaynews.8cn report.8cn \
		rnews.8cn
NO_EG_FILES=	active.times inews organization postdefltgroup readnews.ctl \
		readnews.help report.ctl versionname
NEWSCTL_FILES=	active active.times batchparms controlperm explist \
		history history.dir history.pag inews mailname mailpaths \
		organization postdefltgroup readnews.ctl readnews.help \
		report.ctl sys versionname whoami

SUB_LIST+=	NEWSCTL=${NEWSCTL}
PLIST_SUB+=	VARBASE=${VARBASE}
PLIST_SUB+=	NEWSBIN=${NEWSBIN:S=^${PREFIX}/==}
PLIST_SUB+=	NEWSCTL=${NEWSCTL:S=^${VARBASE}/==}
PLIST_SUB+=	NEWSCTLBASE=${NEWSCTL:S=/news==:S=^${VARBASE}/==}
PLIST_SUB+=	NEWSARTS=${NEWSARTS:S=^${VARBASE}/==}
PLIST_SUB+=	NEWSOV=${NEWSOV:S=^${VARBASE}/==}
PLIST_SUB+=	NEWSCTL_FILES="${NEWSCTL_FILES}"

OPTIONS_DEFINE=	SENDMAIL EXAMPLES
OPTIONS_DEFAULT=PGPGPG
OPTIONS_SINGLE=	VERIFY
OPTIONS_SINGLE_VERIFY=	PGPIN PGPGPG GPGPV
SENDMAIL_DESC=	use sendmail instead of /bin/mail
PGPIN_DESC=	use pgp-2.6.3in for control messages
PGPGPG_DESC=	use pgpgpg for control messages
GPGPV_DESC=	use gpgv from gnupg1 for control messages
PGPIN_RUN_DEPENDS=	pgpin:security/pgpin
PGPGPG_RUN_DEPENDS=	pgpgpg:security/pgpgpg
GPGPV_RUN_DEPENDS=	gpgv:security/gnupg1

VARBASE?=	/var
NEWSBIN?=	${PREFIX}/libexec/cnews
NEWSCTL?=	${VARBASE}/lib/news
NEWSARTS?=	${VARBASE}/news
NEWSOV?=	${VARBASE}/news/over.view
PGPVERIFY?=	pgpverify-1.29

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MSENDMAIL}
EXTRA_PATCHES+=	${FILESDIR}/sendmail.patch
.endif

pre-patch:
	${SED} -e 's|/usr/bin/perl|${LOCALBASE}/bin/perl|' \
		${DISTDIR}/${DIST_SUBDIR}/${PGPVERIFY} \
		> ${WRKSRC}/${PGPVERIFY}

pre-configure:
.for i in conf/quiz.def conf/substitutions include/config.make
	${REINPLACE_CMD} \
		-e "s=/usr/local/news/lib/bin/config=${NEWSBIN}/config=" \
		-e "s=/usr/local/news/cnewsbin=${NEWSBIN}=" \
		-e "s=/usr/local/news/lib=${NEWSCTL}=" \
		-e "s=/var/news/over.view=${NEWSOV}=" \
		-e "s=/var/news=${NEWSARTS}=" \
		-e "s=/usr/local/bin=${PREFIX}/bin=" \
		${WRKSRC}/${i}
.endfor
.if ${PORT_OPTIONS:MPGPIN}
	${REINPLACE_CMD} -e "s|'/usr/local/bin/pgp'|'/usr/local/bin/pgpin'|" \
		${WRKSRC}/${PGPVERIFY}
.endif
.if ${PORT_OPTIONS:MPGPGPG}
	${REINPLACE_CMD} -e "s|'/usr/local/bin/pgp'|'/usr/local/bin/pgpgpg'|" \
		${WRKSRC}/${PGPVERIFY}
.endif
.if ${PORT_OPTIONS:MGPGPV}
	${REINPLACE_CMD} -e "s|^# $$gpgv|$$gpgv|" \
		${WRKSRC}/${PGPVERIFY}
.endif

do-install:
	${INSTALL_DATA} ${WRKSRC}/libdbz/dbz.h ${STAGEDIR}${PREFIX}/include/
	${INSTALL_DATA} ${WRKSRC}/libcnews.a ${STAGEDIR}${PREFIX}/lib/
	${MKDIR} ${STAGEDIR}${NEWSARTS} ${STAGEDIR}${NEWSOV} \
		${STAGEDIR}${NEWSCTL} ${STAGEDIR}${NEWSBIN}
	${INSTALL_SCRIPT} ${WRKSRC}/${PGPVERIFY} ${STAGEDIR}${NEWSBIN}/pgpverify
	${INSTALL_SCRIPT} ${WRKSRC}/conf/config ${STAGEDIR}${NEWSBIN}/
	cd ${WRKSRC} && ${MAKE} ${MAKE_ARGS} ${MAKE_FLAGS} ${MAKEFILE} install
	cd ${WRKSRC} && ${MAKE} ${MAKE_ARGS} ${MAKE_FLAGS} ${MAKEFILE} ui readpostcheck
	cd ${WRKSRC}/man && ${INSTALL_MAN} ${LMAN1} ${STAGEDIR}${PREFIX}/share/man/man1/
	cd ${WRKSRC}/man && ${INSTALL_MAN} ${LMAN5} ${STAGEDIR}${PREFIX}/share/man/man5/
	cd ${WRKSRC}/man && ${INSTALL_MAN} ${LMAN8} ${STAGEDIR}${PREFIX}/share/man/man8/
.if ${PORT_OPTIONS:MEXAMPLES}
	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/newsctl
	cd ${WRKSRC} && ${INSTALL_DATA} ${NO_EG_FILES:S,^,*/,} \
		${STAGEDIR}${EXAMPLESDIR}/newsctl/
.for f in active batchparms controlperm explist mailname mailpaths sys whoami
	cd ${WRKSRC} && ${CP} -p */${f}.eg ${STAGEDIR}${EXAMPLESDIR}/newsctl/${f}
.endfor
	${TOUCH} ${STAGEDIR}${EXAMPLESDIR}/newsctl/history
	cd ${STAGEDIR}${EXAMPLESDIR}/newsctl && \
		${STAGEDIR}${NEWSBIN}/dbz history
.endif
.for d in control junk news/announce/newusers news/announce news \
	in.coming/bad in.coming out.going out.master out.nntp
	${MKDIR} ${STAGEDIR}${NEWSARTS}/${d}
.endfor

test:
	(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
	${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} r)

.include <bsd.port.mk>