Compare commits

...
Sign in to create a new pull request.

6 commits

Author SHA1 Message Date
Fedora Release Engineering
7de37cecdb dist-git conversion 2010-07-29 04:26:01 +00:00
Kevin Fenzi
e102c92690 Commit updated files 2010-07-06 19:12:50 +00:00
Kevin Fenzi
12c5f3f3b9 Update to 16 Add ssl support with gnutl 2010-07-06 19:10:53 +00:00
Bill Nottingham
8db0a51e77 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:23:30 +00:00
Andreas Thienemann
64bb999ed9 - Updated to 0.11.0 2008-02-11 17:26:56 +00:00
Kevin Fenzi
bc6d795cb3 Initialize branch EL-5 for ngircd 2007-11-20 18:48:51 +00:00
7 changed files with 433 additions and 21 deletions

View file

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
ngircd-16.tar.gz

View file

@ -1,21 +0,0 @@
# Makefile for source rpm: ngircd
# $Id$
NAME := ngircd
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

221
ngircd.conf Normal file
View file

@ -0,0 +1,221 @@
a# $Id$
#
# This is a sample configuration file for the ngIRCd, which must be adepted
# to the local preferences and needs.
#
# Comments are started with "#" or ";".
#
# A lot of configuration options in this file start with a ";". You have
# to remove the ";" in front of each variable to actually set a value!
# The disabled variables are shown with example values for completeness.
#
# Use "ngircd --configtest" (see manual page ngircd(8)) to validate that the
# server interprets the configuration file as expected!
#
[Global]
# The [Global] section of this file is used to define the main
# configuration of the server, like the server name and the ports
# on which the server should be listening.
# Server name in the IRC network, must contain at least one dot
# (".") and be unique in the IRC network. Required!
Name = irc.the.net
# Info text of the server. This will be shown by WHOIS and
# LINKS requests for example.
Info = Server Info Text
# Global password for all users needed to connect to the server
;Password = abc
# Information about the server and the administrator, used by the
# ADMIN command. Not required by server but by RFC!
;AdminInfo1 = Description
;AdminInfo2 = Location
;AdminEMail = admin@irc.server
# Ports on which the server should listen. There may be more than
# one port, separated with ",". (Default: 6667)
;Ports = 6667, 6668, 6669
# comma seperated list of IP addresses on which the server should
# listen. Default values are:
# "0.0.0.0" or (if compiled with IPv6 support) "::,0.0.0.0"
# so the server listens on all IP addresses of the system by default.
Listen = 127.0.0.1
# Text file with the "message of the day" (MOTD). This message will
# be shown to all users connecting to the server:
;MotdFile = /etc/ngircd.motd
# A simple Phrase (<256 chars) if you don't want to use a motd file.
# If it is set no MotdFile will be read at all.
;MotdPhrase = "Hello world!"
# User ID under which the server should run; you can use the name
# of the user or the numerical ID. ATTENTION: For this to work the
# server must have been started with root privileges! In addition,
# the configuration and MOTD files must be readable by this user,
# otherwise RESTART and REHASH won't work!
ServerUID = ngirc
# Group ID under which the ngircd should run; you can use the name
# of the group or the numerical ID. ATTENTION: For this to work the
# server must have been started with root privileges!
ServerGID = ngirc
# A directory to chroot in when everything is initialized. It
# doesn't need to be populated if ngIRCd is compiled as a static
# binary. By default ngIRCd won't use the chroot() feature.
# ATTENTION: For this to work the server must have been started
# with root privileges!
;ChrootDir = /var/empty
# This tells ngircd to write its current process id to a file.
# Note that the pidfile is written AFTER chroot and switching uid,
# i. e. the Directory the pidfile resides in must be writeable by
# the ngircd user and exist in the chroot directory.
PidFile = /var/run/ngircd/ngircd.pid
# After <PingTimeout> seconds of inactivity the server will send a
# PING to the peer to test whether it is alive or not.
;PingTimeout = 120
# If a client fails to answer a PING with a PONG within <PongTimeout>
# seconds, it will be disconnected by the server.
;PongTimeout = 20
# The server tries every <ConnectRetry> seconds to establish a link
# to not yet (or no longer) connected servers.
;ConnectRetry = 60
# Should IRC Operators be allowed to use the MODE command even if
# they are not(!) channel-operators?
;OperCanUseMode = no
# Mask IRC Operator mode requests as if they were coming from the
# server? (This is a compatibility hack for ircd-irc2 servers)
;OperServerMode = no
# Allow Pre-Defined Channels only (see Section [Channels])
;PredefChannelsOnly = no
# Don't do any DNS lookups when a client connects to the server.
;NoDNS = no
# try to connect to other irc servers using ipv4 and ipv6, if possible
;ConnectIPv6 = yes
;ConnectIPv4 = yes
# Maximum number of simultaneous connection the server is allowed
# to accept (0: unlimited):
;MaxConnections = 0
# Maximum number of simultaneous connections from a single IP address
# the server will accept (0: unlimited):
;MaxConnectionsIP = 5
# Maximum number of channels a user can be member of (0: no limit):
;MaxJoins = 10
# Maximum length of an user nick name (Default: 9, as in RFC 2812).
# Please note that all servers in an IRC network MUST use the same
# maximum nick name length!
;MaxNickLength = 9
[Operator]
# [Operator] sections are used to define IRC Operators. There may be
# more than one [Operator] block, one for each local operator.
# ID of the operator (may be different of the nick name)
;Name = TheOper
# Password of the IRC operator
;Password = ThePwd
# Optional Mask from which /OPER will be accepted
;Mask = *!ident@somewhere.example.com
[Operator]
# More [Operator] sections, if you like ...
[Server]
# Other servers are configured in [Server] sections. If you
# configure a port for the connection, then this ngircd tries to
# connect to to the other server on the given port; if not it waits
# for the other server to connect.
# There may be more than one server block, one for each server.
#
# Server Groups:
# The ngIRCd allows "server groups": You can assign an "ID" to every
# server with which you want this ngIRCd to link. If a server of a
# group won't answer, the ngIRCd tries to connect to the next server
# in the given group. But the ngircd never tries to connect to two
# servers with the same group ID.
# IRC name of the remote server, must match the "Name" variable in
# the [Global] section of the other server (when using ngIRCd).
;Name = irc2.the.net
# Internet host name or IP address of the peer (only required when
# this server should establish the connection).
;Host = connect-to-host.the.net
# IP address to use as _source_ address for the connection. if unspecified,
# ngircd will let the operating system pick an address.
;Bind = 10.0.0.1
# Port of the server to which the ngIRCd should connect. If you
# assign no port the ngIRCd waits for incoming connections.
;Port = 6667
# Own password for the connection. This password has to be configured
# as "PeerPassword" on the other server.
;MyPassword = MySecret
# Foreign password for this connection. This password has to be
# configured as "MyPassword" on the other server.
;PeerPassword = PeerSecret
# Group of this server (optional)
;Group = 123
# Set the "Passive" option to "yes" if you don't want this ngIRCd to
# connect to the configured peer (same as leaving the "Port" variable
# empty). The advantage of this option is that you can actually configure
# a port an use the IRC command CONNECT more easily to manually connect
# this specific server later.
;Passive = no
[Server]
# More [Server] sections, if you like ...
[Channel]
# Pre-defined channels can be configured in [Channel] sections.
# Such channels are created by the server when starting up and even
# persist when there are no more members left.
# Persistent channels are marked with the mode 'P', which can be set
# and unset by IRC operators like other modes on the fly.
# There may be more than one [Channel] block, one for each channel.
# Name of the channel
;Name = #TheName
# Topic for this channel
;Topic = a great topic
# Initial channel modes
;Modes = tnk
# initial channel password (mode k)
;Key = Secret
# maximum users per channel (mode l)
;MaxUsers = 23
[Channel]
# More [Channel] sections, if you like ...
# -eof-

78
ngircd.init Executable file
View file

@ -0,0 +1,78 @@
#!/bin/bash
#
# ngircd This shell script takes care of starting and stopping
# the ngircd IRC daemon.
#
# chkconfig: - 80 30
# description: ngircd is an IRC daemon
# processname: ngircd
# pidfile: /var/run/ngircd.pid
### BEGIN INIT INFO
# Provides: ngircd
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Short-Description: start and stop the ngircd IRC daemon
# Description: ngircd is an IRC daemon
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
prog=ngircd
RETVAL=0
start() {
echo -n $"Starting $prog: "
daemon ngircd
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/ngircd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc ngircd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/ngircd
}
reload() {
echo -n $"Reloading $prog: "
killproc ngircd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status ngircd
RETVAL=$?
;;
restart)
stop
start
;;
reload)
reload
;;
condrestart)
if [ -f /var/run/ngircd/ngircd.pid ] ; then
stop
start
fi
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|condrestart|status|help}"
exit 1
esac
exit $RETVAL

132
ngircd.spec Normal file
View file

@ -0,0 +1,132 @@
%define uid 36
%define username ngircd
%define homedir /tmp
%define gecos "Next Generation IRC Daemon"
Name: ngircd
Version: 16
Release: 1%{?dist}
Summary: Next Generation IRC Daemon
Group: System Environment/Daemons
License: GPLv2+
URL: http://ngircd.barton.de/
Source0: ftp://ftp.berlios.de/pub/ngircd/ngircd-%{version}.tar.gz
Source1: ngircd.init
Source2: ngircd.conf
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: zlib-devel, avahi-compat-howl-devel, tcp_wrappers
BuildRequires: libident-devel
BuildRequires: gnutls-devel
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/chkconfig
Requires(preun): /sbin/service
Requires(postun): /sbin/service
Requires(pre): fedora-usermgmt
Requires(postun): fedora-usermgmt
%description
ngIRCd is a free open source daemon for Internet Relay Chat (IRC),
developed under the GNU General Public License (GPL). It's written from
scratch and is not based upon the original IRCd like many others.
%prep
%setup -q
%build
%configure \
--with-syslog \
--with-zlib \
--with-epoll \
--with-zeroconf \
--with-tcp-wrappers \
--with-ident \
--with-gnutls \
--enable-ipv6
make %{?_smp_mflags}
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
install -D -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/ngircd
install -D -m 660 %{SOURCE2} %{buildroot}%{_sysconfdir}/ngircd.conf
touch %{buildroot}%{_sysconfdir}/ngircd.motd
rm -rf %{buildroot}%{_docdir}/ngircd
mkdir -p %{buildroot}%{_localstatedir}/run/ngircd
%clean
rm -rf %{buildroot}
%pre
/usr/sbin/fedora-groupadd %uid -r %username &>/dev/null || :
/usr/sbin/fedora-useradd %uid -r -s /sbin/nologin -d %homedir -M \
-c '%gecos' -g %username %username &>/dev/null || :
%post
# This adds the proper /etc/rc*.d links for the script
/sbin/chkconfig --add ngircd
%preun
if [ $1 = 0 ]; then
/sbin/service ngircd stop >/dev/null 2>&1 || :
/sbin/chkconfig --del ngircd
fi
%postun
if [ "$1" -ge "1" ]; then
/sbin/service ngircd condrestart >/dev/null 2>&1 || :
fi
test "$1" != 0 || /usr/sbin/fedora-userdel %username &>/dev/null || :
test "$1" != 0 || /usr/sbin/fedora-groupdel %username &>/dev/null || :
%files
%defattr(-,root,root,-)
%doc AUTHORS COPYING ChangeLog NEWS README doc/*
%config(noreplace) %attr(660, root, ngircd) %{_sysconfdir}/ngircd.conf
%ghost %config(noreplace) %attr(660, root, ngircd) %{_sysconfdir}/ngircd.motd
%{_initrddir}/ngircd
%{_sbindir}/ngircd
%{_mandir}/man5/ngircd.conf*
%{_mandir}/man8/ngircd.8*
%dir %attr(775, root, ngircd) %{_localstatedir}/run/ngircd/
%changelog
* Sun Jul 04 2010 Kevin Fenzi <kevin@tummy.com> - 16-1
- Update to 16
- Add ssl support with gnutls
- Add zeroconf support
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Thu Oct 23 2008 Andreas Thienemann <andreas@bawue.net> 0.12.1-1
- Updated to 0.12.1
- Updated configuration sample
* Mon Aug 11 2008 Tom "spot" Callaway <tcallawa@redhat.com> 0.11.0-2
- fix license tag
* Mon Feb 11 2008 Andreas Thienemann <andreas@bawue.net> 0.11.0-1
- Updated to 0.11.0
* Tue Nov 20 2007 Andreas Thienemann <andreas@bawue.net> 0.10.3-1
- Rebased to 0.10.3
- Incorporated patches from fw@strlen.de
* Thu Apr 26 2007 Andreas Thienemann <andreas@bawue.net> 0.10.1-3
- Removed libident requirement
- Added patch from fw fixing server connections
* Mon Apr 02 2007 Andreas Thienemann <andreas@bawue.net> 0.10.1-2
- Added ngirc user
* Sat Mar 31 2007 Andreas Thienemann <andreas@bawue.net> 0.10.1-1
- Initial package

View file

@ -0,0 +1 @@
8c9e0382cd982b0ca77c05528ebe28eb ngircd-16.tar.gz