Forráskód Böngészése

new package: ratbox 2.0.8 (Internet Relay Chat (IRC) Server)

Ralf S. Engelschall 20 éve
szülő
commit
9f6cf892a5
3 módosított fájl, 310 hozzáadás és 0 törlés
  1. 24 0
      ratbox/ratbox.patch
  2. 215 0
      ratbox/ratbox.spec
  3. 71 0
      ratbox/rc.ratbox

+ 24 - 0
ratbox/ratbox.patch

@@ -0,0 +1,24 @@
+Index: ircd-ratbox-2.0.8/modules/Makefile.in
+--- ircd-ratbox-2.0.8/modules/Makefile.in.orig	2005-01-14 18:25:51 +0100
++++ ircd-ratbox-2.0.8/modules/Makefile.in	2005-04-11 21:44:28 +0200
+@@ -182,7 +182,7 @@
+ 	${CC} ${CPPFLAGS} ${CFLAGS} -DMODNAME=`basename $< .c`_mheader -c $< -o $@
+ 
+ .c.so:
+-	${CC} ${PICFLAGS} ${CPPFLAGS} ${CFLAGS} $< -o $@
++	${CC} ${PICFLAGS} ${CPPFLAGS} ${CFLAGS} $< -o $@ ${IRCDLIBS}
+ 
+ .so.sl:
+ 	$(LD) -b $< -o $@
+Index: ratbox-services-1.0beta1/src/Makefile.in
+--- ratbox-services-1.0beta1/src/Makefile.in.orig	2005-01-04 20:58:50 +0100
++++ ratbox-services-1.0beta1/src/Makefile.in	2005-04-11 21:41:39 +0200
+@@ -12,7 +12,7 @@
+ INCLUDES=-I ../include/ @SQLITE_INCLUDES@
+ LDFLAGS=@LDFLAGS@
+ LIBS=@LIBS@
+-CFLAGS=-g -O0 -Wall -Werror -Wunused -Wshadow -Wmissing-declarations -Wwrite-strings -DPREFIX=\"$(PREFIX)\"
++CFLAGS=@CPPFLAGS@ @CFLAGS@ -g -O0 -Wall -Werror -Wunused -Wshadow -Wmissing-declarations -Wwrite-strings -DPREFIX=\"$(PREFIX)\"
+ MAKE = make
+ 
+ # Anything marked with the .PHONY attribute is always considered "out of date"

+ 215 - 0
ratbox/ratbox.spec

@@ -0,0 +1,215 @@
+##
+##  ratbox.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_server   2.0.8
+%define       V_services 1.0beta1
+
+#   package information
+Name:         ratbox
+Summary:      Internet Relay Chat (IRC) Server
+URL:          http://www.ircd-ratbox.org/
+Vendor:       A. Sethman, L. Hardy, E. Brocklesby et al.
+Packager:     OpenPKG
+Distribution: OpenPKG
+Class:        EVAL
+Group:        Network
+License:      GPL
+Version:      %{V_server}
+Release:      20050411
+
+#   list of sources
+Source0:      ftp://ftp.ircd-ratbox.org/pub/ircd-ratbox/ircd-ratbox-%{V_server}.tgz
+Source1:      ftp://ftp.ircd-ratbox.org/pub/ircd-ratbox/ratbox-services/ratbox-services-%{V_services}.tgz
+Source2:      rc.ratbox
+Patch0:       ftp://ftp.ircd-ratbox.org/pub/ircd-ratbox/ircd-ratbox-%{V_server}+unxr.diff
+Patch1:       ratbox.patch
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20040130, bison, flex
+PreReq:       OpenPKG, openpkg >= 20040130
+BuildPreReq:  openssl, zlib, sqlite
+PreReq:       openssl, zlib, sqlite
+AutoReq:      no
+AutoReqProv:  no
+
+%description
+    IRCD-Ratbox is an advanced, stable, fast Internet Relay Chat (IRC)
+    server. It is an evolution where ircd-hybrid left off. It supports
+    the TS5 and TS6 protocols, and is used on EFnet and other IRC
+    networks. This package also includes the Ratbox Services add-on.
+
+%track
+    prog ratbox = {
+        version   = %{V_server}
+        url       = ftp://ftp.ircd-ratbox.org/pub/ircd-ratbox/
+        regex     = ircd-ratbox-(__VER__)\.tar\.gz
+    }
+    prog ratbox:services = {
+        version   = %{V_services}
+        url       = ftp://ftp.ircd-ratbox.org/pub/ircd-ratbox/ratbox-services/
+        regex     = ratbox-services-(__VER__)\.tar\.gz
+    }
+
+%prep
+    %setup -q -c
+    %setup -q -T -D -a 1
+    %patch -p0 -d ircd-ratbox-%{V_server}
+    %patch -p0 -P 1
+
+%build
+    #   build IRC server
+    ( cd ircd-ratbox-%{V_server}
+      %{l_shtool} subst \
+          -e 's;"/ircd\.;"/server.;g' \
+          -e 's;"/ircd";"/ratbox-ircd";g' \
+          -e 's;ETCPATH "/server\.pid";LOGPATH "/server.pid";' \
+          include/config.h include/config.h.dist
+      CC="%{l_cc}" \
+      CFLAGS="%{l_cflags -O}" \
+      CPPFLAGS="%{l_cppflags}" \
+      LDFLAGS="%{l_ldflags}" \
+      ./configure \
+          --prefix=%{l_prefix} \
+          --with-confdir=%{l_prefix}/etc/ratbox \
+          --with-logdir=%{l_prefix}/var/ratbox \
+          --with-helpdir=%{l_prefix}/share/ratbox \
+          --with-moduledir=%{l_prefix}/libexec/ratbox \
+          --enable-openssl=%{l_prefix} \
+          --enable-zlib \
+          --with-zlib-path=%{l_prefix} \
+          --enable-small-net \
+          --enable-shared-modules
+      %{l_make} %{l_mflags -O}
+    ) || exit $?
+
+    #   build IRC services
+    ( cd ratbox-services-%{V_services}
+      %{l_shtool} subst \
+          -e 's;PREFIX "/services.conf";"%{l_prefix}/etc/ratbox/services.conf";' \
+          -e 's;PREFIX "/services.pid";"%{l_prefix}/var/ratbox/services.pid";' \
+          -e 's;LOG_DIR "/services.log";"%{l_prefix}/var/ratbox/services.log";' \
+          -e 's;PREFIX "/services.db";"%{l_prefix}/var/ratbox/services.db";' \
+          -e 's;PREFIX "/help/";"%{l_prefix}/share/ratbox/services/help/";' \
+          include/config.h
+      CC="%{l_cc}" \
+      CFLAGS="%{l_cflags -O}" \
+      CPPFLAGS="%{l_cppflags}" \
+      LDFLAGS="%{l_ldflags}" \
+      ./configure \
+          --prefix=%{l_prefix} \
+          --with-sqlite=%{l_prefix}
+      %{l_make} %{l_mflags -O}
+    ) || exit $?
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+
+    #   install IRC server
+    ( cd ircd-ratbox-%{V_server}
+      %{l_shtool} subst \
+          -e 's;ln -s ;ln $(DESTDIR);g' \
+          help/Makefile
+      %{l_shtool} mkdir -f -p -m 755 \
+          $RPM_BUILD_ROOT%{l_prefix}/bin \
+          $RPM_BUILD_ROOT%{l_prefix}/etc/ratbox \
+          $RPM_BUILD_ROOT%{l_prefix}/libexec/ratbox \
+          $RPM_BUILD_ROOT%{l_prefix}/share/ratbox \
+          $RPM_BUILD_ROOT%{l_prefix}/var/ratbox
+      %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
+      rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/convert*
+      for bin in ircd mkpasswd servlink viconf viklines vimotd; do
+          mv  $RPM_BUILD_ROOT%{l_prefix}/bin/$bin \
+              $RPM_BUILD_ROOT%{l_prefix}/bin/ratbox-$bin
+      done
+      rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/ratbox/example.efnet.conf
+      mv $RPM_BUILD_ROOT%{l_prefix}/etc/ratbox/example.conf \
+         $RPM_BUILD_ROOT%{l_prefix}/etc/ratbox/server.conf
+      mv $RPM_BUILD_ROOT%{l_prefix}/etc/ratbox/ircd.motd \
+         $RPM_BUILD_ROOT%{l_prefix}/etc/ratbox/server.motd
+      mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/ircd.8 \
+         $RPM_BUILD_ROOT%{l_prefix}/man/man8/ratbox-ircd.8
+      %{l_shtool} subst \
+         -e 's;/usr/local/ircd/modules;%{l_prefix}/libexec/ratbox;g' \
+         $RPM_BUILD_ROOT%{l_prefix}/etc/ratbox/server.conf
+    ) || exit $?
+
+    #   install IRC services
+    ( cd ratbox-services-%{V_services}
+      %{l_make} %{l_mflags} install PREFIX=$RPM_BUILD_ROOT%{l_prefix}/share/ratbox/services
+      mv  $RPM_BUILD_ROOT%{l_prefix}/share/ratbox/services/ratbox-services \
+          $RPM_BUILD_ROOT%{l_prefix}/bin/ratbox-services
+      mv  $RPM_BUILD_ROOT%{l_prefix}/share/ratbox/services/example.conf \
+          $RPM_BUILD_ROOT%{l_prefix}/etc/ratbox/services.conf
+      rmdir $RPM_BUILD_ROOT%{l_prefix}/share/ratbox/services/logs
+    ) || exit $?
+
+    #   post-adjust installation
+    rmdir $RPM_BUILD_ROOT%{l_prefix}/libexec/ratbox-old
+    rmdir $RPM_BUILD_ROOT%{l_prefix}/share/ratbox-old
+    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
+    chmod 755 $RPM_BUILD_ROOT%{l_prefix}/bin/*
+    chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/ratbox/*
+
+    #   install run-command script
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
+    %{l_shtool} install -c -m 755 %{l_value -s -a} \
+        %{SOURCE rc.ratbox} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
+
+    #   determine installation files
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+        %{l_files_std} \
+        '%config %{l_prefix}/etc/ratbox/*' \
+        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/ratbox'
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+
+%post
+    #   on initial installation, create database
+    if [ $1 -eq 1 ]; then
+        $RPM_INSTALL_PREFIX/bin/sqlite \
+            $RPM_INSTALL_PREFIX/var/ratbox/services.db \
+            <$RPM_INSTALL_PREFIX/share/ratbox/services/schema.txt
+        chown %{l_rusr}:%{l_rgrp} $RPM_INSTALL_PREFIX/var/ratbox/services.db
+    fi
+
+    #   after upgrade, restart service
+    [ $1 -eq 2 ] || exit 0
+    eval `%{l_rc} ratbox status 2>/dev/null`
+    [ ".$ratbox_active" = .yes ] && %{l_rc} ratbox restart
+    exit 0
+
+%preun
+    #   before erase, stop service and remove log files
+    [ $1 -eq 0 ] || exit 0
+    %{l_rc} ratbox stop 2>/dev/null
+    rm -f $RPM_INSTALL_PREFIX/var/ratbox/* >/dev/null 2>&1 || true
+    exit 0
+

+ 71 - 0
ratbox/rc.ratbox

@@ -0,0 +1,71 @@
+#!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
+##
+##  rc.ratbox -- Run-Commands
+##
+
+%config
+    ratbox_enable="$openpkg_rc_def"
+    ratbox_server_flags=""
+    ratbox_services_flags=""
+    ratbox_log_prolog="true"
+    ratbox_log_epilog="true"
+    ratbox_log_numfiles="10"
+    ratbox_log_minsize="1M"
+    ratbox_log_complevel="9"
+
+%common
+    ratbox_server_logfile="@l_prefix@/var/ratbox/server.log"
+    ratbox_server_pidfile="@l_prefix@/var/ratbox/server.pid"
+    ratbox_server_signal () {
+        [ -f $ratbox_server_pidfile ] && kill -$1 `cat $ratbox_server_pidfile`
+    }
+    ratbox_services_logfile="@l_prefix@/var/ratbox/services.log"
+    ratbox_services_pidfile="@l_prefix@/var/ratbox/services.pid"
+    ratbox_services_signal () {
+        [ -f $ratbox_services_pidfile ] && kill -$1 `cat $ratbox_services_pidfile`
+    }
+
+%status -u @l_rusr@ -o
+    ratbox_usable="no"
+    ratbox_active="no"
+    rcService ratbox enable yes && ratbox_server_signal 0 && ratbox_active="yes"
+    @l_prefix@/sbin/ratbox-ircd -conftest >/dev/null 2>&1 && ratbox_usable="yes"
+    echo "ratbox_enable=\"$ratbox_enable\""
+    echo "ratbox_usable=\"$ratbox_usable\""
+    echo "ratbox_active=\"$ratbox_active\""
+
+%start -u @l_rusr@
+    rcService ratbox enable yes || exit 0
+    rcService ratbox active yes && exit 0
+    @l_prefix@/bin/ratbox-ircd ${ratbox_server_flags}
+    @l_prefix@/bin/ratbox-services ${ratbox_services_flags}
+
+%stop -u @l_rusr@
+    rcService ratbox enable yes || exit 0
+    rcService ratbox active no  && exit 0
+    ratbox_server_signal TERM
+    ratbox_services_signal TERM
+    sleep 2
+    rm -f $ratbox_server_pidfile >/dev/null 2>&1 || true
+    rm -f $ratbox_services_pidfile >/dev/null 2>&1 || true
+
+%restart -u @l_rusr@
+    rcService ratbox enable yes || exit 0
+    rcService ratbox active no  && exit 0
+    rc ratbox stop start
+
+%daily -u @l_rusr@
+    rcService ratbox enable yes || exit 0
+    shtool rotate -f \
+        -n ${ratbox_log_numfiles} -s ${ratbox_log_minsize} -d \
+        -z ${ratbox_log_complevel} -m 644 -o @l_rusr@ -g @l_rgrp@ \
+        -P "${ratbox_log_prolog}" \
+        -E "${ratbox_log_epilog}; rc ratbox reload" \
+        $ratbox_server_logfile
+    shtool rotate -f \
+        -n ${ratbox_log_numfiles} -s ${ratbox_log_minsize} -d \
+        -z ${ratbox_log_complevel} -m 644 -o @l_rusr@ -g @l_rgrp@ \
+        -P "${ratbox_log_prolog}" \
+        -E "${ratbox_log_epilog}; rc ratbox reload" \
+        $ratbox_services_logfile
+