an easy and consistent way of installing software ported to FreeBSD
GNATS is a problem tracking system written to help report on, and
track, problem reports or bugs. GNATS is currently in use at Cygnus to
help track all incoming bug reports. There are many concepts or
approaches to GNATS which are only useful to organizations which track
bugs related by customers as well as by bug type.
WWW: http://www.gnu.org/software/gnats
#!/bin/sh
# an installation script for GNATS
check_pw()
{
if which -s pw; then
:
else
cat <
This system looks like a pre-2.2 version of FreeBSD. We see that it
is missing the "pw" utility. We need this utility. Please get and
install it, and try again. You can get the source from:
ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/pw.tar.gz
Otherwise, just manually create the gnats user.
EOF
exit 1
fi
}
ask() {
local question default answer
question=$1
default=$2
if [ -z "${PACKAGE_BUILDING}" ]; then
read -p "${question} (y/n) [${default}]? " answer
fi
if [ x${answer} = x ]; then
answer=${default}
fi
echo ${answer}
}
yesno() {
local dflt question answer
question=$1
dflt=$2
while :; do
answer=$(ask "${question}" "${dflt}")
case "${answer}" in
[Yy]*) return 0;;
[Nn]*) return 1;;
esac
echo "Please answer yes or no."
done
}
case $2 in
PRE-INSTALL)
printenv > /tmp/pe
## Hack /etc/master.passwd ##
# check
id_61=`id -u 61 2> /dev/null`
id_gnats=`id -u gnats 2> /dev/null`
if [ X"$id_gnats" != X ];then
exit 0
elif [ X"$id_61" != X ]; then
cat <
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
This system already has an account whose name is not 'gnats' and UID
number is 61.
'`id 61`'
The new FreeBSD standard userid for the gnats user is 61, however you can
actually pick and UID number if you create the 'gnats' user by hand.
Please try to install this package again after you manually create a 'gnats'
account.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
EOF
exit 1
fi
# add an account 'gnats' to this system
echo ""
echo "You need to create a user called 'gnats'"
if yesno "Would you like to create it automatically?" y; then
# We need a command 'pw(8)'
check_pw
pw useradd gnats -u 61 -g 1 -h - -d ${PKG_PREFIX}/share/gnats/gnats-db \
-c 'GNATS database owner' || exit
grep -s gnats /etc/ftpusers || echo gnats >>/etc/ftpusers
else
echo "Please create it, and try again."
exit 1
fi
;;
esac
You will want to add a user entry to your /etc/passwd file for the
user-id that owns gnats-related databases on your server.
Something of the form:
"gnats:*:61:61:GNATS database owner:${PREFIX}/share/gnats/gnats-db:"
should do just fine (put it in your ftpusers file!).
Don't forget to run ${PREFIX}/libexec/gnats/mkcat as gnats.
bin/edit-pr
bin/getclose
bin/install-sid
bin/nedit-pr
bin/nquery-pr
bin/query-pr
bin/send-pr
bin/sub-type
libexec/gnats/at-pr
libexec/gnats/check-db
libexec/gnats/delete-pr
libexec/gnats/file-pr
libexec/gnats/gen-index
libexec/gnats/gnats-edit-pr
libexec/gnats/gnatsd
libexec/gnats/mail-query
libexec/gnats/mkcat
libexec/gnats/mkdist
libexec/gnats/npr-addr
libexec/gnats/npr-edit
libexec/gnats/pr-addr
libexec/gnats/pr-age
libexec/gnats/pr-edit
libexec/gnats/pr-mail
libexec/gnats/queue-pr
libexec/gnats/rmcat
@dirrm libexec/gnats
share/emacs/site-lisp/gnats.el
share/emacs/site-lisp/send-pr.el
share/gnats/cygnus
share/gnats/dist/COPYING
share/gnats/dist/INSTALL
share/gnats/dist/MANIFEST
share/gnats/dist/README
share/gnats/dist/categ.texi
share/gnats/dist/fields.texi
share/gnats/dist/install-sid.sh
share/gnats/dist/s-usage.texi
share/gnats/dist/send-pr-el.in
share/gnats/dist/send-pr.1
share/gnats/dist/send-pr.info
share/gnats/dist/send-pr.sh
share/gnats/dist/send-pr.texi
share/gnats/dist/states.texi
share/gnats/dist/texinfo.tex
share/gnats/dist/version.texi
share/gnats/gnats-db
share/gnats/gnats-db.dist/gnats-adm/addresses
share/gnats/gnats-db.dist/gnats-adm/categories
share/gnats/gnats-db.dist/gnats-adm/classes
share/gnats/gnats-db.dist/gnats-adm/config
share/gnats/gnats-db.dist/gnats-adm/gnatsd.access
share/gnats/gnats-db.dist/gnats-adm/gnatsd.conf
share/gnats/gnats-db.dist/gnats-adm/responsible
share/gnats/gnats-db.dist/gnats-adm/states
share/gnats/gnats-db.dist/gnats-adm/submitters
@exec mkdir %D/share/gnats/gnats-db/gnats-queue
@exec mkdir %D/share/gnats/gnats-db/gnats-adm/locks
@exec mkdir %D/share/gnats/gnats-db/pending
@exec chown gnats %D/share/gnats/gnats-db %D/share/gnats/gnats-db/gnats-adm %D/share/gnats/gnats-db/gnats-adm/locks %D/share/gnats/gnats-db/pending %D/share/gnats/gnats-db/gnats-queue
@dirrm share/gnats/gnats-db.dist/gnats-adm/locks
@dirrm share/gnats/gnats-db.dist/gnats-adm
@dirrm share/gnats/gnats-db.dist/gnats-queue
@dirrm share/gnats/gnats-db.dist/pending
@dirrm share/gnats/gnats-db.dist
@dirrm share/gnats/dist
@dirrm share/gnats