From 57b718aae178b5872167a0386c780f738df07a96 Mon Sep 17 00:00:00 2001 From: "Ralf S. Engelschall" Date: Thu, 29 Dec 2005 13:07:38 +0000 Subject: [PATCH] new package: gnats 4.1.0 (GNU Bug Tracking System) --- gnats/fsl.gnats | 16 +++ gnats/gnats.patch | 184 +++++++++++++++++++++++++++++++ gnats/gnats.spec | 250 +++++++++++++++++++++++++++++++++++++++++++ gnats/gnatsdd.tar.gz | Bin 0 -> 26648 bytes gnats/rc.gnats | 69 ++++++++++++ 5 files changed, 519 insertions(+) create mode 100644 gnats/fsl.gnats create mode 100644 gnats/gnats.patch create mode 100644 gnats/gnats.spec create mode 100644 gnats/gnatsdd.tar.gz create mode 100644 gnats/rc.gnats diff --git a/gnats/fsl.gnats b/gnats/fsl.gnats new file mode 100644 index 0000000000..6aef62a77e --- /dev/null +++ b/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 + ) + } +}; + diff --git a/gnats/gnats.patch b/gnats/gnats.patch new file mode 100644 index 0000000000..66d0849b5e --- /dev/null +++ b/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 diff --git a/gnats/gnats.spec b/gnats/gnats.spec new file mode 100644 index 0000000000..245cef6220 --- /dev/null +++ b/gnats/gnats.spec @@ -0,0 +1,250 @@ +## +## gnats.spec -- OpenPKG RPM Package Specification +## Copyright (c) 2000-2005 OpenPKG Foundation e.V. +## Copyright (c) 2000-2005 Ralf S. Engelschall +## +## 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 + diff --git a/gnats/gnatsdd.tar.gz b/gnats/gnatsdd.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..6427fad1392462c78ce780e891eae0a91cfafdb9 GIT binary patch literal 26648 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
NQ~8vMfO*C~m3`0e=OZ!3roC@(;lV7G}-DF~8Yv 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/dev/null 2>&1 & + echo $! >$gnats_pidfile + ) /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 +