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