1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-18 19:49:40 +00:00

Miscellaneous installation improvements, including (but not limited to)

preserving pre-existing configuration and data.
This commit is contained in:
Dag-Erling Smørgrav 2003-10-09 01:17:43 +00:00
parent ab77da40d1
commit 7977c0ecab
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=90670
8 changed files with 225 additions and 46 deletions

View File

@ -7,61 +7,107 @@
PORTNAME= gnats
PORTVERSION= 4.0
CATEGORIES= databases
MASTER_SITES= http://www.yngve.com/%SUBDIR%/ # ${MASTER_SITE_GNU}
PORTREVISION= 1
CATEGORIES= databases devel
MASTER_SITES= http://home.pacific.net.au/~meganandaj/ \
http://www.yngve.com/%SUBDIR%/ \
# ${MASTER_SITE_GNU}
MASTER_SITE_SUBDIR= gnats
MAINTAINER= eikemeier@fillmore-labs.com
COMMENT= GNATS, the GNU Problem Report Management System
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --sharedstatedir=${PREFIX}/share/gnats
USE_GMAKE= yes
LATEST_LINK= ${PKGNAMEPREFIX}gnats4${PKGNAMESUFFIX}
CONFLICTS= gnats-3.*
USE_GMAKE= yes
PKGMESSAGE= ${WRKDIR}/pkg-message
PKGINSTALL= ${WRKDIR}/pkg-install
GNATSDBBASE?= /var/db
CONFIGURE_ARGS= --sharedstatedir=${GNATSDBBASE}/gnats \
--datadir=${GNATSDBBASE}
.ifdef WITH_SUBMITTER_ID
CONFIGURE_ARGS+= --with-submitter=${WITH_SUBMITTER_ID}
.endif
.ifdef WITH_ORGANIZATION
CONFIGURE_ARGS+= --with-organization=${WITH_ORGANIZATION:Q}
.endif
.ifdef WITH_GNATSD_SERVICE
CONFIGURE_ARGS+= --with-gnats-service=${WITH_GNATSD_SERVICE}
.endif
PLIST_SUB= GNATSDBDIR=${GNATSDBBASE}/gnats
MAN1= edit-pr.1 query-pr.1 send-pr.1
MAN5= databases.5 dbconfig.5
MAN7= gnats.7
MAN8= delete-pr.8 file-pr.8 gen-index.8 gnatsd.8 mkcat.8 mkdb.8 pr-edit.8 queue-pr.8 rmcat.8
MAN8= delete-pr.8 file-pr.8 gen-index.8 gnatsd.8 \
mkcat.8 mkdb.8 pr-edit.8 queue-pr.8 rmcat.8
INFO= gnats-faq gnats
DOCFILES= NEWS UPGRADING
PKGMESSAGE= ${WRKDIR}/pkg-message
STRIP=
BINARIES= bin/getclose bin/query-pr libexec/gnats/gen-index libexec/gnats/gnats-pwconv \
libexec/gnats/gnatsd libexec/gnats/pr-age libexec/gnats/pr-edit libexec/gnats/queue-pr
.if defined(WITH_EMACS_PORT)
.ifdef WITH_EMACS_PORT
EMACS_PORT_NAME= ${WITH_EMACS_PORT}
CONFIGURE_ARGS+= --with-lispdir=${LOCALBASE}/${EMACS_SITE_LISPDIR}
.else
PLIST_SUB+= EMACS_SITE_LISPDIR="@comment "
.endif
.ifdef CLIENT_ONLY
ALL_TARGET= all-tools
INSTALL_TARGET= install-tools
PLIST_SUB+= SERVER="@comment "
PKGNAMESUFFIX= -client
CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}-4.*
.else
PLIST_SUB+= SERVER=""
CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}-client-4.*
.endif
pre-everything::
@${ECHO} "============================================================="
@${ECHO}
@${ECHO} "You can build ${PKGNAME} with the following options:"
@${ECHO}
@${ECHO} "WITH_SUBMITTER_ID=unknown default submitter-id"
@${ECHO} "WITH_ORGANIZATION='unknown' default organization"
@${ECHO} "WITH_GNATSD_SERVICE=support default gnatsd port name"
@${ECHO} "WITH_EMACS_PORT=emacs with Emacs support"
@${ECHO}
@${ECHO} "============================================================="
@${ECHO}
post-build:
${SED} -e 's,%%PREFIX%%,${PREFIX},g' ${PKGDIR}/pkg-message >${PKGMESSAGE}
@for doc in pkg-message pkg-install; do \
${SED} -e 's,%%PREFIX%%,${PREFIX},g' \
-e 's,%%GNATSDBDIR%%,${GNATSDBBASE}/gnats,g' \
${PKGDIR}/$${doc} >${WRKDIR}/$${doc} ; \
done
pre-install:
@${MKDIR} ${PREFIX}/libexec/gnats
@${SETENV} "PKG_PREFIX=${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
post-install:
@for binary in ${BINARIES}; do \
${STRIP_CMD} ${PREFIX}/$${binary}; \
.ifndef CLIENT_ONLY
@for conf in databases gnatsd.host_access; do \
[ -f ${PREFIX}/etc/gnats/$${conf} ] \
|| ${CP} ${PREFIX}/etc/gnats/$${conf}.default ${PREFIX}/etc/gnats/$${conf}; \
done
.endif
.ifndef NOPORTDOCS
@${MKDIR} ${DOCSDIR}
@for doc in ${DOCFILES}; do \
${INSTALL_DATA} ${WRKSRC}/$${doc} ${DOCSDIR}; \
done
.endif
@${CAT} ${PKGMESSAGE}
.include <bsd.port.mk>

View File

@ -0,0 +1,11 @@
--- Makefile.in.orig Mon Sep 22 05:52:58 2003
+++ Makefile.in Mon Sep 22 05:53:13 2003
@@ -50,7 +50,7 @@
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' $@
install-tools: $(LIBIBERTY)
- $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' $@
+ for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done
uninstall:
for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done

View File

@ -1,5 +1,23 @@
--- gnats/Makefile.in.orig Sun Jul 27 01:23:17 2003
+++ gnats/Makefile.in Fri Aug 22 18:41:18 2003
+++ gnats/Makefile.in Mon Sep 22 05:41:57 2003
@@ -91,7 +91,7 @@
INSTALL = $(srcdir)/../install-sh -c
INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@
SUB_INSTALL = `echo $(INSTALL) | sed 's,^\([^/]\),../\1,'`
@@ -163,7 +163,7 @@
check-db delete-pr dbconfig gnats-databases gnats-pwconv $(EXTRA_STUFF)
all-tools: libgnats.a query-pr pr-age pr-edit edit-pr file-pr getclose \
- config-send-pr mail-agent dbconfig
+ mail-agent dbconfig
libgnats.a: $(LIBOBJS)
-rm -f tmplibgnats.a libgnats.a
@@ -371,7 +371,9 @@
else \
echo "*** Warning: Must chown $(GNATS_USER) $(datadir)/gnats" ; \
@ -11,3 +29,52 @@
for i in categories submitters responsible gnatsd.user_access addresses states classes dbconfig ; do \
if [ -f "$$i" ] ; then \
$(INSTALL_DATA) $$i $(sysconfdir)/gnats/defaults/$$i ; \
@@ -386,7 +388,7 @@
$(INSTALL_SCRIPT) edit-pr $(bindir)/edit-pr
$(INSTALL_SCRIPT) $(srcdir)/diff-prs $(libexecdir)/gnats/diff-prs
$(INSTALL_SCRIPT) mail-agent $(libexecdir)/gnats/mail-agent
- $(INSTALL_PROGRAM) file-pr $(libexecdir)/gnats/file-pr
+ $(INSTALL_SCRIPT) file-pr $(libexecdir)/gnats/file-pr
$(INSTALL_PROGRAM) pr-age $(libexecdir)/gnats/pr-age
$(INSTALL_PROGRAM) pr-edit $(libexecdir)/gnats/pr-edit
@if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
@@ -404,29 +406,29 @@
install-gnats-arch-dep: install-gnats-bin $(EXTRA_INSTALL)
install-gnats-arch-indep: all-gnats install-tools-arch-indep
- @if [ -f $(GLOBAL_DB_LIST_FILE) ]; then \
- echo "Not putting gnats-databases file in $(GLOBAL_DB_LIST_FILE), it's already there." ; \
+ @if [ -f $(GLOBAL_DB_LIST_FILE).default ]; then \
+ echo "Not putting gnats-databases file in $(GLOBAL_DB_LIST_FILE).default, it's already there." ; \
true ; \
else \
if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
$(INSTALL_DATA) -o $(GNATS_USER) gnats-databases \
- $(GLOBAL_DB_LIST_FILE) ; \
+ $(GLOBAL_DB_LIST_FILE).default ; \
else \
- $(INSTALL_DATA) gnats-databases $(GLOBAL_DB_LIST_FILE) ; \
- echo "*** Warning: Must chown $(GNATS_USER) $(GLOBAL_DB_LIST_FILE)" ; \
+ $(INSTALL_DATA) gnats-databases $(GLOBAL_DB_LIST_FILE).default ; \
+ echo "*** Warning: Must chown $(GNATS_USER) $(GLOBAL_DB_LIST_FILE).default" ; \
fi \
fi
- @if [ -f $(GNATSD_HOST_ACCESS_FILE) ]; then \
- echo "Not putting gnats.host_access file in $(GNATSD_HOST_ACCESS_FILE), it's already there." ; \
+ @if [ -f $(GNATSD_HOST_ACCESS_FILE).default ]; then \
+ echo "Not putting gnats.host_access file in $(GNATSD_HOST_ACCESS_FILE).default, it's already there." ; \
true ; \
else \
if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
$(INSTALL_DATA) -o $(GNATS_USER) $(srcdir)/gnatsd.host_access \
- $(GNATSD_HOST_ACCESS_FILE) ; \
+ $(GNATSD_HOST_ACCESS_FILE).default ; \
else \
$(INSTALL_DATA) $(srcdir)/gnatsd.host_access \
- $(GNATSD_HOST_ACCESS_FILE) ; \
- echo "*** Warning: Must chown $(GNATS_USER) $(GNATSD_HOST_ACCESS_FILE)" ; \
+ $(GNATSD_HOST_ACCESS_FILE).default ; \
+ echo "*** Warning: Must chown $(GNATS_USER) $(GNATSD_HOST_ACCESS_FILE).default" ; \
fi \
fi
@echo "*** If you're a first-time user, you'll want to create a new database";

View File

@ -0,0 +1,11 @@
--- gnats/configure.orig Sun Sep 21 13:17:44 2003
+++ gnats/configure Sun Sep 21 13:18:30 2003
@@ -2864,7 +2864,7 @@
fi
if test "x$GCC" = "xyes" ; then
- GCC_CFLAGS="-W -Wall -ansi -pedantic -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wno-format"
+ GCC_CFLAGS="-W -Wall -ansi -pedantic -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wno-format -Wno-long-long"
fi
# ***** Guess the configuration *****

View File

@ -0,0 +1,11 @@
--- send-pr/Makefile.in.orig Sun Sep 21 19:02:06 2003
+++ send-pr/Makefile.in Sun Sep 21 19:02:24 2003
@@ -59,7 +59,7 @@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
CFLAGS = -g
LDFLAGS = -g

View File

@ -5,26 +5,39 @@
ECHO_CMD=echo
GREP=/usr/bin/grep
ID=/usr/bin/id
PW=/usr/sbin/pw
FTPUSERS=/etc/ftpusers
GNATSDBDIR=%%GNATSDBDIR%%
case $2 in
PRE-INSTALL)
if ! ${ID} -u gnats >/dev/null 2>&1; then
if ${PW} add user -n gnats -u 61 -g 1 -d ${PKG_PREFIX}/share/gnats \
-c "GNATS database owner" -p "*"; then
${GREP} -qs '^gnats$' ${FTPUSERS} || ${ECHO_CMD} gnats >>/etc/ftpusers
if [ ! -x ${PW} ]; then
${ECHO_CMD} "Your system is missing the \`pw' command."
exit 1
fi
if ${PW} usershow -n gnats >/dev/null 2>&1; then
if [ "`pw usershow -n gnats | awk -F: '{print $9}'`" != "${GNATSDBDIR}" ]; then
${PW} usermod -n gnats -d "${GNATSDBDIR}" 2>/dev/null
${ECHO_CMD} "===> Account \`gnats' updated."
fi
else
if ${PW} useradd -n gnats -u 61 -g 1 -d "${GNATSDBDIR}" \
-c "GNATS database owner" -h -; then
${GREP} -qs '^gnats$' ${FTPUSERS} || ${ECHO_CMD} gnats >> ${FTPUSERS}
${ECHO_CMD} "===> Account \`gnats' created."
else
${ECHO_CMD}
${ECHO_CMD} "The FreeBSD standard userid for gnats is 61, but this system"
${ECHO_CMD} "has already a different account with this userid: \``${ID} -un 61`'"
${ECHO_CMD} "has already a different account with this userid:"
${ECHO_CMD}
${PW} usershow -u 61 -P
${ECHO_CMD}
${ECHO_CMD} "You can either delete this account (which may be dangerous) with"
${ECHO_CMD} " ${PW} userdel -u 61"
${ECHO_CMD} "or add the gnats user with an other userid with"
${ECHO_CMD} " ${PW} useradd -n gnats -g 1 \\"
${ECHO_CMD} " -d ${PKG_PREFIX}/share/gnats -c 'GNATS database owner' -p '*'"
${ECHO_CMD} " ${PW} useradd -n gnats -g daemon \\"
${ECHO_CMD} " -d ${GNATSDBDIR} -c 'GNATS database owner' -h -"
${ECHO_CMD} "and retry installing this package"
${ECHO_CMD}
exit 1

View File

@ -2,12 +2,23 @@
GNATS has been successfully installed.
Run
su gnats %%PREFIX%%/libexec/gnats/mkdb default
to create the default database.
If you want to run the GNATS server, enter
Try "man gnats" or "info gnats" or the online manual at
<http://www.gnu.org/software/gnats/gnats_toc.html>
for more information
%%PREFIX%%/libexec/gnats/mkdb default
to create the default database and add
support stream tcp nowait gnats %%PREFIX%%/libexec/gnats/gnatsd gnatsd
to inetd.conf(5). Instructions to upgrade from a
GNATS 3.x database are in
%%PREFIX%%/share/doc/gnats/UPGRADING
Try `man gnats', `info gnats' and the online manual at
http://www.gnu.org/software/gnats/gnats_toc.html
for more information.
************************************************************

View File

@ -4,7 +4,12 @@ bin/getclose
bin/install-sid
bin/query-pr
bin/send-pr
etc/gnats/databases
%%SERVER%%@unexec if cmp -s %D/etc/gnats/databases %D/etc/gnats/databases.default; then rm -f %D/etc/gnats/databases; fi
%%SERVER%%etc/gnats/databases.default
%%SERVER%%@exec [ -f %B/databases ] || cp %B/%f %B/databases
%%SERVER%%@unexec if cmp -s %D/etc/gnats/gnatsd.host_access %D/etc/gnats/gnatsd.host_access.default; then rm -f %D/etc/gnats/gnatsd.host_access; fi
%%SERVER%%etc/gnats/gnatsd.host_access.default
%%SERVER%%@exec [ -f %B/gnatsd.host_access ] || cp %B/%f %B/gnatsd.host_access
etc/gnats/defaults/addresses
etc/gnats/defaults/categories
etc/gnats/defaults/classes
@ -13,25 +18,29 @@ etc/gnats/defaults/gnatsd.user_access
etc/gnats/defaults/responsible
etc/gnats/defaults/states
etc/gnats/defaults/submitters
etc/gnats/gnatsd.host_access
@dirrm etc/gnats/defaults
@dirrm etc/gnats
libexec/gnats/at-pr
libexec/gnats/check-db
libexec/gnats/delete-pr
@unexec rmdir %D/etc/gnats 2>/dev/null || true
%%SERVER%%libexec/gnats/at-pr
%%SERVER%%libexec/gnats/check-db
%%SERVER%%libexec/gnats/delete-pr
libexec/gnats/diff-prs
libexec/gnats/file-pr
libexec/gnats/gen-index
libexec/gnats/gnats-pwconv
libexec/gnats/gnatsd
%%SERVER%%libexec/gnats/gen-index
%%SERVER%%libexec/gnats/gnats-pwconv
%%SERVER%%libexec/gnats/gnatsd
libexec/gnats/mail-agent
libexec/gnats/mail-query
libexec/gnats/mkcat
libexec/gnats/mkdb
%%SERVER%%libexec/gnats/mail-query
%%SERVER%%libexec/gnats/mkcat
%%SERVER%%libexec/gnats/mkdb
libexec/gnats/pr-age
libexec/gnats/pr-edit
libexec/gnats/queue-pr
libexec/gnats/rmcat
%%SERVER%%libexec/gnats/queue-pr
%%SERVER%%libexec/gnats/rmcat
@dirrm libexec/gnats
@exec mkdir -p %%GNATSDBDIR%%
@exec chown gnats %%GNATSDBDIR%%
@unexec rmdir %%GNATSDBDIR%% 2>/dev/null || true
%%PORTDOCS%%%%DOCSDIR%%/NEWS
%%PORTDOCS%%%%DOCSDIR%%/UPGRADING
%%PORTDOCS%%@dirrm %%DOCSDIR%%
%%EMACS_SITE_LISPDIR%%/gnats.el
@unexec rmdir %D/share/gnats 2>/dev/null || true