# Define global settings %global _hardened_build 1 %global major_version 4 %global minor_version 1 %global micro_version 2 Name: charybdis Version: %{major_version}.%{minor_version}.%{micro_version} Release: 1%{?dist} Summary: A highly-scalable IRCv3-compliant IRC daemon Group: Applications/Communications License: GPLv2 URL: https://charybdis-ircd.github.io/ Source0: https://github.com/%{name}-ircd/%{name}/archive/%{name}-%{version}.tar.gz Source1: %{name}.service Source2: %{name}.tmpfiles Source3: %{name}.conf Source4: %{name}.README Provides: %{name} = %{version}-%{release} BuildRequires: bison BuildRequires: flex BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: libtool-ltdl-devel BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(libcrypto) BuildRequires: systemd Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Requires(pre): shadow-utils Requires: openssl %description Charybdis is an IRCv3 server designed to be highly scalable. It implements IRCv3.1 and some parts of IRCv3.2. It is meant to be used with an IRCv3-capable services implementation such as Atheme or Anope. Charybdis is an ircd used on various networks either as itself, or as the basis of a customized IRC server implementation. A derivative of charybdis, ircd-seven powers freenode, which is the largest IRC network in the world. %prep %setup -q -n %{name}-%{name}-%{version} %build /bin/sh ./autogen.sh %configure --prefix=%{_prefix} \ --with-program-prefix=charybdis- \ --enable-fhs-paths \ --with-rundir=/run \ --sysconfdir=%{_sysconfdir}/%{name} \ --with-moduledir=%{_libdir}/%{name} \ --with-logdir=%{_var}/log/%{name} \ --localstatedir=%{_sharedstatedir} \ --libexecdir=%{_libexecdir} \ --enable-openssl \ --enable-ipv6 \ --enable-epoll \ --with-shared-sqlite make %{?_smp_mflags} CHARYBDIS_VERSION="%{version}" # Extra readme cp %{SOURCE4} %{_builddir}/%{name}-%{name}-%{version}/README.info %install rm -rf $RPM_BUILD_ROOT %make_install # Move the binaries to the libexec directory, since it's # more appropriate. This could change in the future. %{__install} -d -m 0755 ${RPM_BUILD_ROOT}/%{_libexecdir}/%{name} %{__mv} ${RPM_BUILD_ROOT}/%{_bindir}/* \ ${RPM_BUILD_ROOT}/%{_libexecdir}/%{name} # Install service %{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_unitdir} %{__install} -m 0644 %{SOURCE1} \ ${RPM_BUILD_ROOT}%{_unitdir}/%{name}.service # Install tmpfiles %{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_tmpfilesdir} %{__install} -m 0644 %{SOURCE2} \ ${RPM_BUILD_ROOT}%{_tmpfilesdir}/%{name}.conf # Install ircd.conf %{__install} -m 0660 %{SOURCE3} \ ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/ircd.conf # Create log and shared state %{__install} -d -m 0750 ${RPM_BUILD_ROOT}%{_sharedstatedir}/%{name} %{__install} -d -m 0750 ${RPM_BUILD_ROOT}%{_var}/log/%{name} # Removing development libraries rm -rf ${RPM_BUILD_ROOT}%{_libdir}/pkgconfig rm ${RPM_BUILD_ROOT}%{_libdir}/*.la %pre %{_sbindir}/groupadd -r %{name} 2>/dev/null || : %{_sbindir}/useradd -r -g %{name} \ -s /sbin/nologin -d %{_datadir}/%{name} \ -c 'Charybdis Server' %{name} 2>/dev/null || : %preun %if 0%{?fedora} || 0%{?rhel} >= 7 %systemd_preun %{name}.service %endif %post %if 0%{?fedora} || 0%{?rhel} >= 7 %systemd_post %{name}.service systemd-tmpfiles --create %{name}.conf || : %endif %postun %if 0%{?fedora} || 0%{?rhel} >= 7 %systemd_postun_with_restart %{name}.service %endif %files %defattr(-, root, root, -) %doc README.info doc/logfiles.txt doc/credits-past.txt doc/features/* doc/oper-guide/* doc/technical/* doc/modes.txt doc/server-version-info.txt CREDITS LICENSE NEWS.md README.md %dir %attr(0750,charybdis,charybdis) %{_var}/log/%{name} %dir %attr(0750,charybdis,charybdis) %{_sharedstatedir}/%{name} %dir %attr(0750,root,charybdis) %{_sysconfdir}/%{name} %dir %{_libexecdir}/%{name} %dir %{_libdir}/%{name} %dir %{_libdir}/%{name}/autoload %dir %{_libdir}/%{name}/extensions %dir %{_datadir}/%{name} %dir %{_datadir}/%{name}/help %dir %{_datadir}/%{name}/help/opers %dir %{_datadir}/%{name}/help/users %{_libdir}/*.so %{_libdir}/%{name}/*.so %{_libdir}/%{name}/autoload/*.so %{_libdir}/%{name}/extensions/*.so %{_datadir}/%{name}/help/opers/* %{_datadir}/%{name}/help/users/* %{_unitdir}/%{name}.service %attr(0755,charybdis,charybdis) %{_libexecdir}/%{name}/* # Default configuration %config(noreplace) %attr(0640,charybdis,charybdis) %{_sysconfdir}/%{name}/ircd.conf %config(noreplace) %attr(0640,charybdis,charybdis) %{_sysconfdir}/%{name}/ircd.motd %attr(0640,charybdis,charybdis) %{_sysconfdir}/%{name}/*.example %attr(0640,charybdis,charybdis) %{_sysconfdir}/%{name}/reference.conf #%{_mandir}/man8/charybdis-ircd.8* %{_tmpfilesdir}/%{name}.conf # Excludes - commented since we're using rm instead at build #%exclude %{_libdir}/*.la #%exclude %dir %{_libdir}/pkgconfig #%exclude %{_libdir}/pkgconfig/libratbox.pc %changelog * Wed Sep 18 2019 Louis Abel - 4.1.2-1 - Rebase to 4.1.2 * Fri May 10 2019 Louis Abel - 4.1.1-1 - Rebase to 4.1.1 - Removed useless patches * Fri May 10 2019 Louis Abel - 3.5.6-1 - Initial build of charybdis - Patch WError that caused compilation to fail - Patch the libratbox file to ensure no conflict with ircd-ratbox