Browse Source

new package: gnats 4.1.0 (GNU Bug Tracking System)

master
parent
commit
57b718aae1
  1. 16
      gnats/fsl.gnats
  2. 184
      gnats/gnats.patch
  3. 250
      gnats/gnats.spec
  4. BIN
      gnats/gnatsdd.tar.gz
  5. 69
      gnats/rc.gnats

16
gnats/fsl.gnats

@ -0,0 +1,16 @@
##
## fsl.gnats -- OSSP fsl configuration
##
ident .*(gnatsd?)/.+ q{
prefix(
prefix="%b %d %H:%M:%S %N <%L> $1[%P]: "
)
-> {
debug: file(
path="@l_prefix@/var/gnats/gnats.log",
perm=0664
)
}
};

184
gnats/gnats.patch

@ -0,0 +1,184 @@
Index: gnats-4.1.0/Makefile.in
--- gnats-4.1.0/Makefile.in.orig 2005-02-24 21:35:55 +0100
+++ gnats-4.1.0/Makefile.in 2005-12-29 13:35:41 +0100
@@ -48,7 +48,7 @@
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' $@
install-tools:
- $(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
Index: gnats-4.1.0/gnats/Makefile.in
--- gnats-4.1.0/gnats/Makefile.in.orig 2005-02-24 21:35:55 +0100
+++ gnats-4.1.0/gnats/Makefile.in 2005-12-29 13:35:41 +0100
@@ -93,7 +93,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,'`
@@ -391,7 +391,7 @@
$(INSTALL_SCRIPT) edit-pr $(DESTDIR)$(bindir)/edit-pr
$(INSTALL_SCRIPT) diff-prs $(DESTDIR)$(libexecdir)/gnats/diff-prs
$(INSTALL_SCRIPT) mail-agent $(DESTDIR)$(libexecdir)/gnats/mail-agent
- $(INSTALL_PROGRAM) file-pr $(DESTDIR)$(libexecdir)/gnats/file-pr
+ $(INSTALL_SCRIPT) file-pr $(DESTDIR)$(libexecdir)/gnats/file-pr
$(INSTALL_PROGRAM) pr-age $(DESTDIR)$(libexecdir)/gnats/pr-age
$(INSTALL_PROGRAM) pr-edit $(DESTDIR)$(libexecdir)/gnats/pr-edit
@if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
Index: gnats-4.1.0/gnats/edit.c
--- gnats-4.1.0/gnats/edit.c.orig 2005-02-24 21:22:46 +0100
+++ gnats-4.1.0/gnats/edit.c 2005-12-29 13:35:41 +0100
@@ -134,79 +134,47 @@
}
static int
-addAuditEntryP (const DatabaseInfo database, FieldIndex field,
- ChangeActions actions)
+applyChangeActions (PR *pr, PR *oldPR, FieldIndex field,
+ ChangeActions actions, ErrorDesc *err,
+ FormatNamedParameter *params)
{
- while (actions != NULL)
- {
- if (actions->addAuditTrail)
- {
- return 1;
- }
- actions = actions->next;
- }
+ ChangeActions actionList = actions;
- if (fieldDefForIndex (field)->datatype != MultiText)
+ while (actionList != NULL)
{
- ChangeActions globalActions = globalChangeActions (database);
-
- while (globalActions != NULL)
+ if (actionList->expr == NULL
+ || pr_matches_expr (pr, oldPR, actionList->expr, params))
{
- if (globalActions->addAuditTrail)
+ if (applyChangeAction (actionList, pr, oldPR, field, err, params))
{
return 1;
}
- globalActions = globalActions->next;
+
+ if (field != InvalidFieldIndex && actionList->addAuditTrail)
+ {
+ addAuditTrailEnt (pr, actionList->auditTrailFormat, params, err);
+ }
}
+ actionList = actionList->next;
}
- return 0;
-}
-
-static int
-applyChangeActions (PR *pr, PR *oldPR, FieldIndex field,
- ChangeActions actions, ErrorDesc *err,
- FormatNamedParameter *params)
-{
- {
- ChangeActions actionList = actions;
- while (actionList != NULL)
- {
- if (actionList->expr == NULL
- || pr_matches_expr (pr, oldPR, actionList->expr, params))
- {
- if (applyChangeAction (actionList, pr, oldPR, field, err, params))
- {
- return 1;
- }
- }
- actionList = actionList->next;
- }
- }
-
- if (field != InvalidFieldIndex && addAuditEntryP (pr->database,
- field, actions))
+ if (field != InvalidFieldIndex)
{
- ChangeActions action = actions;
- while (actions != NULL)
+ if (fieldDefForIndex (field)->datatype != MultiText)
{
- if (actions->addAuditTrail)
+ ChangeActions globalActions = globalChangeActions (pr->database);
+
+ while (globalActions != NULL)
{
- break;
+ if (globalActions->addAuditTrail)
+ {
+ addAuditTrailEnt (pr, globalActions->auditTrailFormat,
+ params, err);
+ }
+ globalActions = globalActions->next;
}
- actions = actions->next;
- }
-
- if (action != NULL)
- {
- addAuditTrailEnt (pr, action->auditTrailFormat, params, err);
- }
- else
- {
- addAuditTrailEnt (pr, NULL, params, err);
}
}
-
return 0;
}
Index: gnats-4.1.0/gnats/mail-query.sh
--- gnats-4.1.0/gnats/mail-query.sh.orig 2001-12-09 15:38:21 +0100
+++ gnats-4.1.0/gnats/mail-query.sh 2005-12-29 13:35:41 +0100
@@ -19,12 +19,12 @@
# along with GNU GNATS; see the file COPYING. If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-GNATS_ADMIN_ADDR="`query-pr --responsible-address gnats-admin`"
-LIBEXECDIR=xLIBEXECDIRx
-
PATH=xBINDIRx:/bin:/sbin:/usr/bin:/usr/ucb:/usr/bsd:/usr/sbin
export PATH
+GNATS_ADMIN_ADDR="`query-pr --responsible-address gnats-admin`"
+LIBEXECDIR=xLIBEXECDIRx
+
# Don't expand globs for the arguments to query-pr.
set -f
Index: gnats-4.1.0/send-pr/Makefile.in
--- gnats-4.1.0/send-pr/Makefile.in.orig 2005-02-24 19:49:23 +0100
+++ gnats-4.1.0/send-pr/Makefile.in 2005-12-29 13:35:41 +0100
@@ -55,7 +55,7 @@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
CFLAGS = -g
LDFLAGS = -g
Index: gnatsweb-4.00/gnatsweb.pl
--- gnatsweb-4.00/gnatsweb.pl.orig 2003-07-29 14:24:22 +0200
+++ gnatsweb-4.00/gnatsweb.pl 2005-12-29 13:35:58 +0100
@@ -1358,7 +1358,7 @@
',' . $fields{'Reply-To'});
}
my $subject = $q->escape("Re: $fields{$CATEGORY_FIELD}/$pr: $fields{$SYNOPSIS_FIELD}");
- my $body = $q->escape(get_viewpr_url($pr));
+ my $body = get_viewpr_url($pr);
# Netscape Navigator up to and including 4.x should get the URL in
# the body encoded only once -- and so should Opera

250
gnats/gnats.spec

@ -0,0 +1,250 @@
##
## gnats.spec -- OpenPKG RPM Package Specification
## Copyright (c) 2000-2005 OpenPKG Foundation e.V. <http://openpkg.net/>
## Copyright (c) 2000-2005 Ralf S. Engelschall <http://engelschall.com/>
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
# package version
%define V_gnats 4.1.0
%define V_gnatsweb 4.00
%define V_gnatsperl 0.06
# package information
Name: gnats
Summary: GNU Bug Tracking System
URL: http://www.gnu.org/software/gnats/
Vendor: GNU
Packager: OpenPKG
Distribution: OpenPKG
Class: EVAL
Group: Database
License: GPL
Version: %{V_gnats}
Release: 20051229
# package options
%option with_fsl yes
# list of sources
Source0: ftp://ftp.gnu.org/gnu/gnats/gnats-%{V_gnats}.tar.gz
Source1: ftp://ftp.gnu.org/gnu/gnatsweb/gnatsweb-%{V_gnatsweb}.tar.gz
Source2: http://osdn.dl.sourceforge.net/gnatsperl/Net-Gnats-%{V_gnatsperl}.tgz
Source3: gnatsdd.tar.gz
Source4: rc.gnats
Source5: fsl.gnats
Patch0: gnats.patch
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20040130
PreReq: OpenPKG, openpkg >= 20040130, MTA
%if "%{with_fsl}" == "yes"
BuildPreReq: fsl >= 1.2.0
PreReq: fsl >= 1.2.0
%endif
BuildPreReq: perl, perl-openpkg
PreReq: perl
AutoReq: no
AutoReqProv: no
%description
GNU GNATS is a set of tools for tracking bugs reported by users to a
central site. It allows problem report management and communication
with users via various means. GNATS stores all the information about
problem reports in its databases and provides tools for querying,
editing, and maintenance of the databases.
%track
prog gnats = {
version = %{V_gnats}
url = ftp://ftp.gnu.org/gnu/gnats/
regex = gnats-(__VER__)\.tar\.gz
}
prog gnats:gnatsweb = {
version = %{V_gnatsweb}
url = ftp://ftp.gnu.org/gnu/gnatsweb/
regex = gnatsweb-(__VER__)\.tar\.gz
}
prog gnats:gnatsperl = {
version = %{V_gnatsperl}
url = http://prdownloads.sourceforge.net/gnatsperl/
regex = Net-Gnats-(__VER__)\.tgz
}
%prep
%setup -q -c
%setup -q -D -T -a1
%setup -q -D -T -a2
%setup -q -D -T -a3
%patch -p0
%build
# build toolkit
( cd gnats-%{V_gnats}
CC="%{l_cc}" \
CFLAGS="%{l_cflags -O}" \
CPPFLAGS="%{l_cppflags}" \
LDFLAGS="%{l_ldflags} %{l_fsl_ldflags}" \
LIBS="%{l_fsl_libs}" \
./configure \
--prefix=%{l_prefix} \
--sharedstatedir=%{l_prefix}/var/gnats/db \
--with-lispdir=%{l_prefix}/share/gnats \
--with-gnats-default-db=%{l_prefix}/var/gnats/db \
--with-gnats-user=%{l_rusr}
%{l_make} %{l_mflags -O}
) || exit $?
# build stand-alone daemon wrapper
( cd gnatsdd
CC="%{l_cc}" \
CFLAGS="%{l_cflags -O}" \
./configure
%{l_make} %{l_mflags}
) || exit $?
# build Perl API
%{l_prefix}/bin/perl-openpkg prepare
%{l_prefix}/bin/perl-openpkg -d Net-Gnats-%{V_gnatsperl} configure build
%install
# install toolkit
rm -rf $RPM_BUILD_ROOT
( cd gnats-%{V_gnats}
%{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
) || exit $?
# install stand-alone daemon wrapper
%{l_shtool} install -c -s -m 755 \
gnatsdd/gnatsdd $RPM_BUILD_ROOT%{l_prefix}/libexec/gnats/
# install web user interface
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/cgi
%{l_shtool} install -c -m 755 \
-e 's;/usr/bin/perl;%{l_prefix}/bin/perl;' \
-e 's;\./gnats-site\.pl;%{l_prefix}/etc/gnats/gnatsweb.conf;g' \
-e 's;\./gnatsweb\.html;%{l_prefix}/share/gnats/gnatsweb.html;g' \
gnatsweb-%{V_gnatsweb}/gnatsweb.pl $RPM_BUILD_ROOT%{l_prefix}/cgi/gnatsweb
%{l_shtool} install -c -m 644 \
gnatsweb-%{V_gnatsweb}/gnatsweb.html $RPM_BUILD_ROOT%{l_prefix}/share/gnats/
%{l_shtool} install -c -m 644 \
gnatsweb-%{V_gnatsweb}/gnatsweb-site.pl $RPM_BUILD_ROOT%{l_prefix}/etc/gnats/gnatsweb.conf
# install Perl API
%{l_prefix}/bin/perl-openpkg -d Net-Gnats-%{V_gnatsperl} install
%{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup
# strip down and post-adjust installation
strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir
# adjust default-configuration
%{l_shtool} subst \
-e 's;^#\(DEFAULT_ORGANIZATION\)=.*;\1="Example Corporation";' \
-e 's;^#\(GNATS_SITE\)=.*;\1="gnats.example.com";' \
-e 's;^#\(SUBMITTER\)=.*;\1="gnats-example";' \
-e 's;^#\(MAILPROG\)=.*;#\1="%{l_prefix}/sbin/sendmail -oi -t";' \
$RPM_BUILD_ROOT%{l_prefix}/etc/gnats/send-pr.conf
# install run-command script
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
%{l_shtool} install -c -m 644 %{l_value -s -a} \
%{SOURCE rc.gnats} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# install OSSP fsl configuration
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/etc/fsl
%{l_shtool} install -c -m 644 %{l_value -s -a} \
%{SOURCE fsl.gnats} $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
# create run-time directory
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/var/gnats
# determine installation files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} `cat perl-openpkg-files` \
'%config %{l_prefix}/etc/fsl/fsl.gnats' \
'%config %{l_prefix}/etc/gnats/*' \
'%attr(600,%{l_musr},%{l_mgrp}) %{l_prefix}/etc/gnats/gnatsd.host_access' \
'%attr(4555,%{l_rusr},%{l_mgrp}) %{l_prefix}/libexec/gnats/queue-pr' \
'%attr(4555,%{l_rusr},%{l_mgrp}) %{l_prefix}/libexec/gnats/pr-edit' \
'%attr(4555,%{l_rusr},%{l_mgrp}) %{l_prefix}/libexec/gnats/gen-index' \
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/gnats'
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT
%post
if [ $1 -eq 1 ]; then
# initially, create database
su - %{l_rusr} -c \
"$RPM_INSTALL_PREFIX/libexec/gnats/mkdb default"
# initially, activate in MTA configuration
aliases_file=`$RPM_INSTALL_PREFIX/etc/rc --query MTA_aliases_file`
aliases_update=`$RPM_INSTALL_PREFIX/etc/rc --query MTA_aliases_update`
if [ ".$aliases_file" != . ]; then
( echo "gnats-admin: postmaster"
echo "gnats-queue: \"|$RPM_INSTALL_PREFIX/libexec/gnats/queue-pr -q\""
echo "gnats-query: \"|$RPM_INSTALL_PREFIX/libexec/gnats/mail-query\""
echo "gnats: gnats-queue"
echo "send-pr: gnats-queue"
echo "query-pr: gnats-query"
) | %{l_rpmtool} config -a -i "$RPM_INSTALL_PREFIX:gnats" $aliases_file
fi
if [ ".$aliases_update" != . ]; then
eval $aliases_update >/dev/null 2>&1 || true
fi
fi
if [ $1 -eq 2 ]; then
# after upgrade, restart service
eval `%{l_rc} gnats status 2>/dev/null`
[ ".$gnats_active" = .yes ] && %{l_rc} gnats restart
fi
exit 0
%preun
if [ $1 -eq 0 ]; then
# stop perhaps still running server
%{l_rc} gnats stop 2>/dev/null
# deactivate in MTA configuration
aliases_file=`$RPM_INSTALL_PREFIX/etc/rc --query MTA_aliases_file`
aliases_update=`$RPM_INSTALL_PREFIX/etc/rc --query MTA_aliases_update`
if [ ".$aliases_file" != . ]; then
%{l_rpmtool} config -r -i "$RPM_INSTALL_PREFIX:gnats" $aliases_file
fi
if [ ".$aliases_update" != . ]; then
eval $aliases_update >/dev/null 2>&1 || true
fi
# remove database
rm -rf $RPM_INSTALL_PREFIX/var/gnats/db >/dev/null 2>&1 || true
fi
exit 0

BIN
gnats/gnatsdd.tar.gz

Binary file not shown.

69
gnats/rc.gnats

@ -0,0 +1,69 @@
#!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
##
## rc.gnats -- Run-Commands
##
%config
gnats_enable="$openpkg_rc_def"
gnats_bind="127.0.0.1"
gnats_port="1529"
gnats_flags=""
gnats_log_prolog="true"
gnats_log_epilog="true"
gnats_log_numfiles="10"
gnats_log_minsize="1M"
gnats_log_complevel="9"
%common
gnats_pidfile="@l_prefix@/var/gnats/gnats.pid"
gnats_logfile="@l_prefix@/var/gnats/gnats.log"
gnats_signal () {
[ -f $gnats_pidfile ] && kill -$1 `cat $gnats_pidfile`
}
gnats_start () {
( @l_prefix@/libexec/gnats/gnatsdd ${gnats_bind}${gnats_bind:+:}${gnats_port} \
@l_prefix@/libexec/gnats/gnatsd ${gnats_flags} \
</dev/null >/dev/null 2>&1 &
echo $! >$gnats_pidfile
) </dev/null >/dev/null 2>&1
}
%status -u @l_susr@ -o
gnats_usable="unknown"
gnats_active="no"
rcService gnats enable yes && \
gnats_signal 0 && gnats_active="yes"
echo "gnats_enable=\"$gnats_enable\""
echo "gnats_usable=\"$gnats_usable\""
echo "gnats_active=\"$gnats_active\""
%start -u @l_rusr@
rcService gnats enable yes || exit 0
rcService gnats active yes && exit 0
gnats_start
%stop -u @l_rusr@
rcService gnats enable yes || exit 0
rcService gnats active no && exit 0
gnats_signal TERM
sleep 2
rm -f $gnats_pidfile >/dev/null 2>&1 || true
%restart -u @l_rusr@
rcService gnats enable yes || exit 0
rcService gnats active no && exit 0
rc gnats stop start
%quarterly -u @l_rusr@
rcService gnats enable yes || exit 0
@l_prefix@/libexec/gnats/queue-pr --run
%daily -u @l_rusr@
rcService gnats enable yes || exit 0
shtool rotate -f \
-n ${gnats_log_numfiles} -s ${gnats_log_minsize} -d \
-z ${gnats_log_complevel} -m 664 -o @l_susr@ -g @l_mgrp@ \
-P "${gnats_log_prolog}" \
-E "${gnats_log_epilog}; rc gnats restart" \
$gnats_logfile
Loading…
Cancel
Save