File unrealircd.spec of Package unrealircd

#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

Name:           unrealircd
Version:        3.2.9
Release:        1
License:        GPL
Summary:        Unreal IRCd - the next generation ircd
Url:            http://www.unrealircd.com/
Group:          Productivity/Networking/IRC
Source:         Unreal%{version}.tar.gz
Source1:        unrealircd
Source2:        ircd
Source3:        unrealircd.apparmor
Source4:        http://www.unrealircd.com/modules/dl/u3/src/48/joindeop.tar.gz
# PATCH-FIX-OPENSUSE -- create the tmp and cache dir if they do not exist on the right places
Patch2:         unrealircd-tmpdir.patch
# PATCH-FIX-OPENSUSE -- add the output from makenet to the right file
Patch3:         unrealircd-makenet.patch
Patch5:         Unreal3.2.9_compiler_warnings.patch
Patch6:         Unreal3.2.9_change_user.patch
Patch7:         joindeop_add_prototype.patch
BuildRequires:  gcc
BuildRequires:  curl-devel
BuildRequires:  glibc-devel
BuildRequires:  libcares-devel
BuildRequires:  make
BuildRequires:  openssl-devel
BuildRequires:  pkg-config
BuildRequires:  tre-devel
BuildRequires:  zlib-devel
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%define _initddir %{_sysconfdir}/init.d
%define configdir %{_sysconfdir}/Unreal
%define modulesdir %{_libdir}/Unreal
%define logdir /var/log/Unreal
%define homedir /var/lib/Unreal
%define rundir /var/run/Unreal
%define ircddir %{_sbindir}
%define datadir %{_datadir}/Unreal
%define docdir %{_defaultdocdir}/Unreal
%define firewall %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services
# keep in sync with Unreal3.2.9_change_user.patch
%define ircd_group %{name}
%define ircd_user %{name}


%description
Unreal IRCd - the next generation ircd

WWW: http://www.unrealircd.com/

%prep
%setup -q -n Unreal3.2 -a 4
sed -i "s|||g" ./doc/coding-guidelines
%patch2 -p0
%patch3 -p1
%patch5 -p0
%patch6 -p0
%patch7 -p0
cp joindeop.c src/modules/

%build
export CFLAGS="%{optflags} -Wno-unused -DCLEAN_COMPILE"
%configure \
	--with-listen=5 \
	--with-dpath=%{configdir} \
	--with-spath=%{ircddir}/ircd \
	--with-nick-history=2000 \
	--with-sendq=3000000 \
	--with-bufferpool=18 \
	--with-permissions=0640 \
	--with-fd-setsize=1024 \
	--enable-dynamic-linking \
	--enable-hub \
	--enable-nospoof \
	--enable-ziplinks \
	--enable-inet6 \
	--with-system-tre \
	--with-system-cares \
	--disable-ssl \
	--disable-libcurl \
	--enable-prefixaq
make %{?_smp_flags} all custommodule MODULEFILE=joindeop
#	--enable-ssl \

%install
install -m 755 -d %{buildroot}%{configdir}/aliases
install -m 755 -d %{buildroot}%{modulesdir}
install -m 755 -d %{buildroot}%{datadir}/aliases
install -m 755 -d %{buildroot}%{datadir}/networks
install -m 750 -d %{buildroot}%{homedir}
install -m 755 -d %{buildroot}%{docdir}
install -m 755 -d %{buildroot}%{logdir}
install -m 755 -d %{buildroot}%{rundir}/tmp
install -m 755 -d %{buildroot}%{rundir}/cache
install -m 755 -d %{buildroot}%{ircddir}
install -m 755 -d %{buildroot}%{firewall}
install -m 755 -d %{buildroot}%{_initddir}
install -m 755 -d %{buildroot}%{_sbindir}
install -m 0750 src/ircd %{buildroot}%{ircddir}/ircd
install src/modules/*.so %{buildroot}%{modulesdir}
install -m 644 README Donation %{buildroot}%{docdir}
install -m 644 doc/Authors doc/coding-guidelines doc/tao.of.irc doc/translations.txt doc/*html %{buildroot}%{docdir}
install -m 644 doc/technical/005.txt doc/technical/base64.txt doc/technical/protoctl.txt doc/technical/token.txt doc/technical/vl.txt %{buildroot}%{docdir}
install -m 644 doc/example.conf %{buildroot}%{datadir}/unrealircd.conf
install -m 644 badwords.*.conf %{buildroot}%{datadir}
install -m 644 help.conf %{buildroot}%{datadir}
install -m 644 spamfilter.conf %{buildroot}%{datadir}
install -m 644 aliases/*.conf %{buildroot}%{datadir}/aliases
install -m 644 networks/*.network %{buildroot}%{datadir}/networks
install -m 644 networks/networks.ndx %{buildroot}%{datadir}/networks
install -m 755 networks/makenet %{buildroot}%{datadir}/networks
install -m 644 %{SOURCE2} %{buildroot}%{firewall}
install -m 755 %{SOURCE1} %{buildroot}%{_initddir}
install -m 644 -D %{SOURCE3} %{buildroot}/etc/apparmor.d/usr.sbin.ircd-unrealircd
ln -s ../..%{_initddir}/unrealircd %{buildroot}%{_sbindir}/rcunrealircd
install -m 644 %{buildroot}/%{datadir}/aliases/aliases.conf %{buildroot}/%{configdir}/aliases
install -m 644 %{buildroot}/%{datadir}/aliases/anope.conf %{buildroot}/%{configdir}/aliases
install -m 644 %{buildroot}/%{datadir}/aliases/auspice.conf %{buildroot}/%{configdir}/aliases
install -m 644 %{buildroot}/%{datadir}/aliases/cygnus.conf %{buildroot}/%{configdir}/aliases
install -m 644 %{buildroot}/%{datadir}/aliases/epona.conf %{buildroot}/%{configdir}/aliases
install -m 644 %{buildroot}/%{datadir}/aliases/generic.conf %{buildroot}/%{configdir}/aliases
install -m 644 %{buildroot}/%{datadir}/aliases/genericstats.conf %{buildroot}/%{configdir}/aliases
install -m 644 %{buildroot}/%{datadir}/aliases/ircservices.conf %{buildroot}/%{configdir}/aliases
install -m 644 %{buildroot}/%{datadir}/aliases/operstats.conf %{buildroot}/%{configdir}/aliases
install -m 644 %{buildroot}/%{datadir}/badwords.channel.conf %{buildroot}/%{configdir}
install -m 644 %{buildroot}/%{datadir}/badwords.message.conf %{buildroot}/%{configdir}
install -m 644 %{buildroot}/%{datadir}/badwords.quit.conf %{buildroot}/%{configdir}
install -m 644 %{buildroot}/%{datadir}/help.conf %{buildroot}/%{configdir}
install -m 644 %{buildroot}/%{datadir}/spamfilter.conf %{buildroot}/%{configdir}
sed "s|^//loadmodule \"src/modules/commands.so\";|loadmodule \"%{_libdir}/Unreal/commands.so\";|g; \
	 s|^//loadmodule \"src/modules/cloak.so\";|loadmodule \"%{_libdir}/Unreal/cloak.so\";|g; \
	 s|^log \"ircd.log\" {|log \"/var/log/Unreal/ircd.log\" {|g; \
	 s|ircd.motd.fr|ircd.motd|g; \
	 s|ircd.rules.fr|ircd.rules|g" \
     %{buildroot}/%{datadir}/unrealircd.conf > %{buildroot}/%{configdir}/unrealircd.conf
touch %{buildroot}/%{configdir}/ircd.motd
touch %{buildroot}/%{configdir}/ircd.rules
touch %{buildroot}/%{homedir}/ircd.tune
chmod 0640 %{buildroot}/%{homedir}/ircd.tune
touch %{buildroot}%{logdir}/ircd.log
chmod -R u=rwX,g=rX,o= %{buildroot}/%{configdir}

	 #s|mask.*fr$;|mask *@*;g; \


%clean
rm -rf %{buildroot}

%pre
if
    getent group %{ircd_group} >/dev/null
then
    : OK group %{ircd_group} already present
else
    groupadd -r %{ircd_group} 2>/dev/null || :
fi
if
    id %{ircd_user} > /dev/null 2>&1
then
    : OK user %{ircd_user} already present
else
    useradd  -r -o -g %{ircd_group} -s /bin/false -c "User for %{name}" -d %{rundir} %{ircd_user} 2> /dev/null || :
fi

%post
%if ! 0%{?suse_version}
/sbin/insserv /etc/init.d/unrealircd
%else
%{fillup_and_insserv unrealircd}
%endif

%preun
%stop_on_removal

%postun
%restart_on_update unrealircd
%insserv_cleanup


%files
%defattr(-, root, root)
%{_sbindir}/rcunrealircd
%{docdir}/
%{datadir}/
%{modulesdir}/
%dir /etc/apparmor.d/
%config(noreplace) /etc/apparmor.d/usr.sbin.ircd-unrealircd
%config %{firewall}/ircd
%config(noreplace) %{_initddir}/unrealircd
%attr(-,root,%{ircd_group}) %{ircddir}/ircd
%dir %{logdir}
%config(noreplace) %attr(600,%{ircd_user},%{ircd_group}) %{logdir}/ircd.log
%attr(-,%{ircd_user},root) %{homedir}
%attr(-,root,%{ircd_group}) %config(noreplace) %{configdir}/
%ghost %dir %attr(770,%{ircd_user},root) %{rundir}
%ghost %dir %attr(770,%{ircd_user},root) %{rundir}/tmp
%ghost %dir %attr(770,%{ircd_user},root) %{rundir}/cache

%changelog
openSUSE Build Service is sponsored by