- Unbreak on CURRENT;

- Pass maintainership from ports@ to submitter;
- Remove utmp code if utmpx is present;
- Handle configuration files correctly;
- Use ETCDIR;
- Remove empty REQUIRE line from runsvdir.sh.in.

PR:		ports/157298
Submitted by:	Chris Rees <utisoft@gmail.com>
This commit is contained in:
Boris Samorodov 2011-05-27 15:26:01 +00:00
parent 1b07b69df5
commit 55452e601a
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=274736
4 changed files with 136 additions and 50 deletions

View file

@ -7,18 +7,19 @@
PORTNAME= runit
PORTVERSION= 2.0.0
PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= http://smarden.org/${PORTNAME}/
MAINTAINER= ports@FreeBSD.org
MAINTAINER= utisoft@gmail.com
COMMENT= Service supervision tools compatible with DJB daemontools
USE_RC_SUBR= runsvdir.sh
WRKSRC= ${WRKDIR}/admin/${DISTNAME}
ALL_TARGET= default
SERVICE_DIR?= /var/service
SUB_LIST= SERVICE_DIR="${SERVICE_DIR}"
PORTDOCS= *
MAN8= chpst.8 runit-init.8 runit.8 runsv.8 runsvchdir.8 \
runsvdir.8 sv.8 svlogd.8 utmpset.8
@ -27,12 +28,6 @@ DOCS= package/CHANGES package/COPYING package/README \
CONFIG= etc/freebsd/1 etc/2 etc/freebsd/3 etc/freebsd/ctrlaltdel \
etc/freebsd/getty-ttyv4/run etc/freebsd/getty-ttyv4/finish
.include <bsd.port.pre.mk>
.if ${OSVERSION} > 900007
BROKEN= fails to build with new utmpx
.endif
do-configure:
${ECHO_CMD} "${CC} ${CFLAGS}" > ${WRKSRC}/src/conf-cc
@ -40,22 +35,32 @@ do-build:
cd ${WRKSRC} && package/compile && package/check
@${MKDIR} ${WRKDIR}/etc/getty-ttyv4
.for file in ${CONFIG}
@${SED} -e 's!/etc/runit!${PREFIX}/etc/runit!g' \
@${SED} -e 's!/etc/runit!${ETCDIR}!g' \
-e 's!/service!${SERVICE_DIR}!g' \
-e 's!/usr/local!${PREFIX}!g' \
${WRKSRC}/${file} > ${WRKDIR}/${file:S!freebsd/!!}.sample
.endfor
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/command/* ${PREFIX}/sbin
${INSTALL_MAN} ${WRKSRC}/man/*.8 ${MANPREFIX}/man/man8
@${MKDIR} ${PREFIX}/etc/runit/getty-ttyv4
${INSTALL_SCRIPT} ${WRKDIR}/etc/[123c]* ${PREFIX}/etc/runit
${INSTALL_SCRIPT} ${WRKDIR}/etc/getty-ttyv4/* \
${PREFIX}/etc/runit/getty-ttyv4
@${INSTALL_PROGRAM} ${WRKSRC}/command/* ${PREFIX}/sbin
.for man in ${MAN8}
@${INSTALL_MAN} ${WRKSRC}/man/${man} ${MAN8PREFIX}/man/man8
.endfor
@${MKDIR} ${ETCDIR}/getty-ttyv4
@${INSTALL_SCRIPT} ${WRKDIR}/etc/[123c]* ${ETCDIR}
@${INSTALL_SCRIPT} ${WRKDIR}/etc/getty-ttyv4/* \
${ETCDIR}/getty-ttyv4
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${DOCSDIR}
. for doc in ${DOCS}
@${INSTALL_DATA} ${WRKSRC}/${doc} ${DOCSDIR}
. endfor
.endif
.include <bsd.port.post.mk>
post-install:
@for file in ${ETCDIR}/*.sample ${ETCDIR}/getty-ttyv4/*.sample ; \
do [ ! -f ${ETCDIR}/$${file%.sample} ] \
&& ${CP} -p $${file} $${file%.sample} ; \
done
.include <bsd.port.mk>

View file

@ -0,0 +1,96 @@
$FreeBSD$
Since init lacks this code in FreeBSD (utx-logout is performed in pam_lastlog)
we will simply make utmpset.c a noop if utmpx is present.
http://lists.freebsd.org/pipermail/freebsd-ports/2011-May/067872.html
diff -ruN ../runit-2.0.0.orig/src/tryuwtmpx.c ./src/tryuwtmpx.c
--- ../runit-2.0.0.orig/src/tryuwtmpx.c 2008-06-15 21:53:26.000000000 +0100
+++ ./src/tryuwtmpx.c 2011-05-21 21:47:36.834727936 +0100
@@ -1,9 +1,9 @@
#include <sys/types.h>
#include <utmpx.h>
-struct futmpx ut;
+struct utmpx ut;
int main(void) {
- char *s =ut.ut_name;
+ char *s =ut.ut_user;
return(0);
}
diff -ruN ../runit-2.0.0.orig/src/utmpset.c ./src/utmpset.c
--- ../runit-2.0.0.orig/src/utmpset.c 2008-06-15 21:53:26.000000000 +0100
+++ ./src/utmpset.c 2011-05-24 19:11:50.186633061 +0100
@@ -22,6 +22,11 @@
void usage(void) { strerr_die4x(1, "usage: ", progname, USAGE, "\n"); }
int utmp_logout(const char *line) {
+
+#ifdef _UW_TMP_UTMPX
+ int ok = 1; /* do_nada(); */
+#else /* _UW_TMP_UTMP */
+
int fd;
uw_tmp ut;
int ok =-1;
@@ -45,9 +50,13 @@
break;
}
close(fd);
+#endif /* _UW_TMP_UTMPX */
return(ok);
}
int wtmp_logout(const char *line) {
+#ifdef _UW_TMP_UTMPX
+ return 1; /* do_nada(); */
+#else /* _UW_TMP_UTMP */
int fd;
int len;
struct stat st;
@@ -79,6 +88,7 @@
}
close(fd);
return(1);
+#endif /* _UW_TMP_UTMPX */
}
int main (int argc, const char * const *argv, const char * const *envp) {
diff -ruN ../runit-2.0.0.orig/src/uw_tmp.h1 ./src/uw_tmp.h1
--- ../runit-2.0.0.orig/src/uw_tmp.h1 2008-06-15 21:53:26.000000000 +0100
+++ ./src/uw_tmp.h1 2011-05-24 19:12:55.575957224 +0100
@@ -3,6 +3,8 @@
/* sysdep: -utmpx */
+#ifndef _UW_TMP_UTMP
+#define _UW_TMP_UTMP
#ifdef _PATH_UTMP
#define UW_TMP_UFILE _PATH_UTMP
#define UW_TMP_WFILE _PATH_WTMP
@@ -17,3 +19,4 @@
#endif
typedef struct utmp uw_tmp;
+#endif /* _UW_TMP_UTMP */
diff -ruN ../runit-2.0.0.orig/src/uw_tmp.h2 ./src/uw_tmp.h2
--- ../runit-2.0.0.orig/src/uw_tmp.h2 2008-06-15 21:53:26.000000000 +0100
+++ ./src/uw_tmp.h2 2011-05-24 19:13:16.542222974 +0100
@@ -3,11 +3,12 @@
/* sysdep: +utmpx */
-#define UW_TMP_UFILE _UTMPX_FILE
-#define UW_TMP_WFILE _WTMPX_FILE
-
+#ifndef _UW_TMP_UTMPX
+#define _UW_TMP_UTMPX
#ifndef ut_time
#define ut_time ut_tv.tv_sec
#endif
-typedef struct futmpx uw_tmp;
+typedef struct utmpx uw_tmp;
+
+#endif /* _UW_TMP_UTMPX */

View file

@ -2,9 +2,7 @@
#
# $FreeBSD$
#
# PROVIDE: /service
# REQUIRE:
# BEFORE: SERVERS
# KEYWORD: shutdown

View file

@ -1,10 +1,22 @@
@comment $FreeBSD$
etc/runit/1.sample
etc/runit/2.sample
etc/runit/3.sample
etc/runit/ctrlaltdel.sample
etc/runit/getty-ttyv4/run.sample
etc/runit/getty-ttyv4/finish.sample
@unexec cmp -s %D/%%ETCDIR%%/1 %D/%%ETCDIR%%/1.sample && rm -f %D/%%ETCDIR%%/1
%%ETCDIR%%/1.sample
@exec [ ! -f %D/%%ETCDIR%%/1 ] && cp -p %D/%F %B/1
@unexec cmp -s %D/%%ETCDIR%%/2 %D/%%ETCDIR%%/2.sample && rm -f %D/%%ETCDIR%%/2
%%ETCDIR%%/2.sample
@exec [ ! -f %D/%%ETCDIR%%/2 ] && cp -p %D/%F %B/2
@unexec cmp -s %D/%%ETCDIR%%/3 %D/%%ETCDIR%%/3.sample && rm -f %D/%%ETCDIR%%/3
%%ETCDIR%%/3.sample
@exec [ ! -f %D/%%ETCDIR%%/3 ] && cp -p %D/%F %B/3
@unexec cmp -s %D/%%ETCDIR%%/ctrlaltdel %D/%%ETCDIR%%/ctrlaltdel.sample && rm -f %D/%%ETCDIR%%/ctrlaltdel
%%ETCDIR%%/ctrlaltdel.sample
@exec [ ! -f %D/%%ETCDIR%%/ctrlaltdel ] && cp -p %D/%F %B/ctrlaltdel
@unexec cmp -s %D/%%ETCDIR%%/getty-ttyv4/run %D/%%ETCDIR%%/getty-ttyv4/run.sample && rm -f %D/%%ETCDIR%%/getty-ttyv4/run
%%ETCDIR%%/getty-ttyv4/run.sample
@exec [ ! -f %D/%%ETCDIR%%/getty-ttyv4/run ] && cp -p %D/%F %B/getty-ttyv4/run
@unexec cmp -s %D/%%ETCDIR%%/getty-ttyv4/finish %D/%%ETCDIR%%/getty-ttyv4/finish.sample && rm -f %D/%%ETCDIR%%/getty-ttyv4/finish
%%ETCDIR%%/getty-ttyv4/finish.sample
@exec [ ! -f %D/%%ETCDIR%%/getty-ttyv4/finish ] && cp -p %D/%F %B/getty-ttyv4/finish
sbin/chpst
sbin/runit
sbin/runit-init
@ -14,30 +26,5 @@ sbin/runsvdir
sbin/sv
sbin/svlogd
sbin/utmpset
%%PORTDOCS%%%%DOCSDIR%%/CHANGES
%%PORTDOCS%%%%DOCSDIR%%/COPYING
%%PORTDOCS%%%%DOCSDIR%%/README
%%PORTDOCS%%%%DOCSDIR%%/THANKS
%%PORTDOCS%%%%DOCSDIR%%/benefits.html
%%PORTDOCS%%%%DOCSDIR%%/chpst.8.html
%%PORTDOCS%%%%DOCSDIR%%/dependencies.html
%%PORTDOCS%%%%DOCSDIR%%/faq.html
%%PORTDOCS%%%%DOCSDIR%%/index.html
%%PORTDOCS%%%%DOCSDIR%%/install.html
%%PORTDOCS%%%%DOCSDIR%%/replaceinit.html
%%PORTDOCS%%%%DOCSDIR%%/runit-init.8.html
%%PORTDOCS%%%%DOCSDIR%%/runit.8.html
%%PORTDOCS%%%%DOCSDIR%%/runlevels.html
%%PORTDOCS%%%%DOCSDIR%%/runscripts.html
%%PORTDOCS%%%%DOCSDIR%%/runsv.8.html
%%PORTDOCS%%%%DOCSDIR%%/runsvchdir.8.html
%%PORTDOCS%%%%DOCSDIR%%/runsvdir.8.html
%%PORTDOCS%%%%DOCSDIR%%/sv.8.html
%%PORTDOCS%%%%DOCSDIR%%/svlogd.8.html
%%PORTDOCS%%%%DOCSDIR%%/upgrade.html
%%PORTDOCS%%%%DOCSDIR%%/usedietlibc.html
%%PORTDOCS%%%%DOCSDIR%%/useinit.html
%%PORTDOCS%%%%DOCSDIR%%/utmpset.8.html
%%PORTDOCS%%@dirrm %%DOCSDIR%%
@dirrm etc/runit/getty-ttyv4
@dirrm etc/runit