diff --git a/prosody-0.11.7-epel6.patch b/prosody-0.11.7-epel6.patch deleted file mode 100644 index ff80b46..0000000 --- a/prosody-0.11.7-epel6.patch +++ /dev/null @@ -1,60 +0,0 @@ -Hack by Robert Scheck for prosody >= 0.11.7 which removes the -service_command_warning() function for EPEL 6, because the SysVinit script actually uses -this functionality. - ---- prosody-0.11.7/prosodyctl 2020-05-31 22:39:34.000000000 +0200 -+++ prosody-0.11.7/prosodyctl.epel6 2020-10-01 22:57:47.161806878 +0200 -@@ -199,26 +199,11 @@ - return 1; - end - --local function service_command_warning(service_command) -- if prosody.installed and configmanager.get("*", "prosodyctl_service_warnings") ~= false then -- show_warning("WARNING: Use of prosodyctl start/stop/restart/reload is not recommended"); -- show_warning(" if Prosody is managed by an init system - use that directly instead."); -- lfs = lfs or require -- if lfs.attributes("/etc/systemd") then -- show_warning(" e.g. systemctl %s prosody", service_command); -- elseif lfs.attributes("/etc/init.d/prosody") then -- show_warning(" e.g. /etc/init.d/prosody %s", service_command); -- end -- show_warning(""); -- end --end -- - function commands.start(arg) - if arg[1] == "--help" then - show_usage([[start]], [[Start Prosody]]); - return 1; - end -- service_command_warning("start"); - local ok, ret = prosodyctl.isrunning(); - if not ok then - show_message(error_messages[ret]); -@@ -309,8 +294,6 @@ - return 1; - end - -- service_command_warning("stop"); -- - if not prosodyctl.isrunning() then - show_message("Prosody is not running"); - return 1; -@@ -346,8 +329,6 @@ - return 1; - end - -- service_command_warning("restart"); -- - commands.stop(arg); - return commands.start(arg); - end -@@ -441,8 +422,6 @@ - return 1; - end - -- service_command_warning("reload"); -- - if not prosodyctl.isrunning() then - show_message("Prosody is not running"); - return 1; diff --git a/prosody.init b/prosody.init deleted file mode 100644 index b5bd4d9..0000000 --- a/prosody.init +++ /dev/null @@ -1,116 +0,0 @@ -#!/bin/bash -# -# prosody - Flexible communications server for Jabber/XMPP -# -# chkconfig: - 90 10 -# description: Prosody is a flexible communications server for Jabber/XMPP written in Lua. \ -# It aims to be easy to use, and light on resources. For developers it aims \ -# to be easy to extend and give a flexible system on which to rapidly develop \ -# added functionality, or prototype new protocols. -# config: /etc/prosody/prosody.cfg.lua -# pidfile: /var/run/prosody/prosody.pid - -### BEGIN INIT INFO -# Provides: prosody -# Required-Start: $local_fs $network $remote_fs -# Required-Stop: $local_fs $network $remote_fs -# Default-Start: -# Default-Stop: 0 1 6 -# Short-Description: Flexible communications server for Jabber/XMPP -# Description: Prosody is a flexible communications server for Jabber/XMPP written in Lua. -# It aims to be easy to use, and light on resources. For developers it aims -# to be easy to extend and give a flexible system on which to rapidly develop -# added functionality, or prototype new protocols. -### END INIT INFO - -# Source function library. -. /etc/rc.d/init.d/functions - -prog="Prosody XMPP (Jabber) server" -exec="/usr/bin/prosodyctl" -user="prosody" -lockfile="/var/lock/subsys/prosody" -pidfile="/var/run/prosody/prosody.pid" - -[ -e /etc/sysconfig/prosody ] && . /etc/sysconfig/prosody - -start() { - [ -x $exec ] || exit 5 - [ -f $config ] || exit 6 - echo -n $"Starting $prog: " - # Avoid output "Started\n" after successful startup - OUTPUT="`daemon --user $user $exec start`" - RETVAL=$? - echo -n "${OUTPUT/Started$'\n'/}" - [ $RETVAL -eq 0 ] && touch $lockfile - echo - return $RETVAL -} - -stop() { - [ -x $exec ] || exit 5 - echo -n $"Stopping $prog: " - # Avoid output "Stopped\n" and "Prosody is not running\n" - OUTPUT="`daemon $exec stop`" - RETVAL=$? - OUTPUT="${OUTPUT/Stopped$'\n'/}" - echo -n "${OUTPUT/Prosody is not running$'\n'/}" - [ $RETVAL -eq 0 ] && rm -f $lockfile - echo - return $RETVAL -} - -reload() { - [ -x $exec ] || exit 5 - echo -n $"Reloading $prog: " - # Avoid prosody specific output after successful reload - OUTPUT="`$exec reload`" - RETVAL=$? - [ $RETVAL -eq 0 ] && success || (echo "$OUTPUT"; failure) - echo - return $RETVAL -} - -rh_status() { - status -p $pidfile $exec -} - -rh_status_q() { - rh_status > /dev/null 2>&1 -} - -case "$1" in - start) - rh_status_q && exit 0 - $1 - ;; - stop) - rh_status_q || exit 0 - $1 - ;; - restart) - stop - start - ;; - reload) - rh_status_q || exit 7 - $1 - ;; - force-reload) - stop - start - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - stop - start - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" - exit 2 -esac - -exit $? diff --git a/prosody.logrotate b/prosody.logrotate new file mode 100644 index 0000000..5c2bd0f --- /dev/null +++ b/prosody.logrotate @@ -0,0 +1,12 @@ +/var/log/prosody/prosody.log /var/log/prosody/prosody.err { + missingok + compress + delaycompress + notifempty + postrotate + /bin/systemctl --quiet is-active prosody.service && /bin/systemctl reload prosody.service || true + endscript + create 0640 prosody prosody + sharedscripts + su prosody prosody +} diff --git a/prosody.logrotate-init b/prosody.logrotate-init deleted file mode 100644 index 501c2f7..0000000 --- a/prosody.logrotate-init +++ /dev/null @@ -1,11 +0,0 @@ -/var/log/prosody/prosody.log /var/log/prosody/prosody.err { - missingok - compress - delaycompress - notifempty - postrotate - /sbin/service prosody status > /dev/null 2>&1 && /sbin/service prosody reload > /dev/null || true - endscript - create 0640 prosody prosody - sharedscripts -} diff --git a/prosody.logrotate-service b/prosody.logrotate-service deleted file mode 100644 index 5c2bd0f..0000000 --- a/prosody.logrotate-service +++ /dev/null @@ -1,12 +0,0 @@ -/var/log/prosody/prosody.log /var/log/prosody/prosody.err { - missingok - compress - delaycompress - notifempty - postrotate - /bin/systemctl --quiet is-active prosody.service && /bin/systemctl reload prosody.service || true - endscript - create 0640 prosody prosody - sharedscripts - su prosody prosody -} diff --git a/prosody.spec b/prosody.spec index 11ff9d5..f208940 100644 --- a/prosody.spec +++ b/prosody.spec @@ -12,41 +12,35 @@ URL: https://prosody.im/ Source0: https://prosody.im/downloads/source/%{name}-%{version}.tar.gz Source1: https://prosody.im/downloads/source/%{name}-%{version}.tar.gz.asc Source2: gpgkey-32A9EDDE3609931EB98CEAC315907E8E7BDD6BFE.gpg -Source3: prosody.init -Source4: prosody.logrotate-init -Source5: prosody.service -Source6: prosody.logrotate-service -Source7: prosody.tmpfilesd -Source8: prosody-localhost.cfg.lua -Source9: prosody-example.com.cfg.lua +Source3: prosody.service +Source4: prosody.logrotate +Source5: prosody.tmpfilesd +Source6: prosody-localhost.cfg.lua +Source7: prosody-example.com.cfg.lua Patch0: prosody-0.11.0-config.patch Patch1: prosody-0.11.4-lua53.patch Patch2: prosody-0.11.5-lua54.patch -Patch3: prosody-0.11.7-epel6.patch -BuildRequires: gcc, libidn-devel, openssl-devel BuildRequires: gnupg2 +BuildRequires: gcc +BuildRequires: libicu-devel +BuildRequires: openssl-devel +BuildRequires: lua +BuildRequires: lua-devel +BuildRequires: systemd Requires: %{_bindir}/openssl Requires(pre): shadow-utils -%if 0%{?rhel} > 6 || 0%{?fedora} > 17 Requires(post): systemd, %{_bindir}/openssl Requires(preun): systemd Requires(postun): systemd BuildRequires: systemd -%else -Requires(post): /sbin/chkconfig, %{_bindir}/openssl -Requires(preun): /sbin/service, /sbin/chkconfig -Requires(postun): /sbin/service -%endif -%if 0%{?rhel} > 6 || 0%{?fedora} > 15 Requires: lua(abi) = %{lua_version} -%else -Requires: lua >= %{lua_version} -%endif -Requires: lua-filesystem, lua-expat, lua-socket, lua-sec -%if 0%{?rhel} == 6 || 0%{?rhel} == 7 +Requires: lua-filesystem +Requires: lua-expat +Requires: lua-socket +Requires: lua-sec +%if 0%{?rhel} && 0%{?rhel} < 8 Requires: lua-bitop %endif -BuildRequires: lua, lua-devel %description Prosody is a flexible communications server for Jabber/XMPP written in Lua. @@ -60,39 +54,30 @@ added functionality, or prototype new protocols. %patch0 -p1 -b .config %patch1 -p1 -b .lua53 %patch2 -p1 -b .lua54 -%if 0%{?rhel} == 6 -%patch3 -p1 -b .epel6 -%endif %build ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ + --idn-library=icu \ --add-cflags="$RPM_OPT_FLAGS" \ -%if 0%{?rhel} > 6 || 0%{?fedora} --add-ldflags="$RPM_LD_FLAGS" \ -%else - --add-ldflags="$RPM_LD_FLAGS -lrt" \ -%endif --no-example-certs -make %{?_smp_mflags} +%make_build # Make prosody-migrator -make -C tools/migration %{?_smp_mflags} +%make_build -C tools/migration %install mkdir -p $RPM_BUILD_ROOT{%{_sysconfdir}/pki,%{_localstatedir}/{lib,log}/%{name}}/ -make DESTDIR=$RPM_BUILD_ROOT install +%make_install # Install prosody-migrator -make -C tools/migration DESTDIR=$RPM_BUILD_ROOT install +%make_install -C tools/migration # Install ejabberd2prosody install -p -m 755 tools/ejabberd2prosody.lua $RPM_BUILD_ROOT%{_bindir}/ejabberd2prosody sed -e 's@;../?.lua@;%{_libdir}/%{name}/util/?.lua;%{_libdir}/%{name}/?.lua;@' \ -%if 0%{?fedora} > 19 && 0%{?fedora} <= 30 - -e '1s@ lua$@ lua-%{lua_version}@' \ -%endif -i $RPM_BUILD_ROOT%{_bindir}/ejabberd2prosody touch -c -r tools/ejabberd2prosody.lua $RPM_BUILD_ROOT%{_bindir}/ejabberd2prosody install -p -m 644 tools/erlparse.lua $RPM_BUILD_ROOT%{_libdir}/%{name}/util/ @@ -101,25 +86,18 @@ install -p -m 644 tools/erlparse.lua $RPM_BUILD_ROOT%{_libdir}/%{name}/util/ mv -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/certs/ $RPM_BUILD_ROOT%{_sysconfdir}/pki/%{name}/ ln -s ../pki/%{name}/ $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/certs -# Install systemd/tmpfiles or initscript files -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 -install -D -p -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_unitdir}/%{name}.service -install -D -p -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name} -install -D -p -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_tmpfilesdir}/%{name}.conf -mkdir -p $RPM_BUILD_ROOT/run/%{name}/ -%else -install -D -p -m 755 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/%{name} +# Install systemd unit files and tmpfiles +install -D -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_unitdir}/%{name}.service install -D -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name} -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/%{name}/ -sed -e 's@/run@%{_localstatedir}/run@' -i $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/prosody.cfg.lua -%endif +install -D -p -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_tmpfilesdir}/%{name}.conf +mkdir -p $RPM_BUILD_ROOT/run/%{name}/ # Keep configuration file timestamp touch -c -r prosody.cfg.lua.dist.config $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/prosody.cfg.lua # Install virtual host configuration -install -D -p -m 644 %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.d/localhost.cfg.lua -install -D -p -m 644 %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.d/example.com.cfg.lua +install -D -p -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.d/localhost.cfg.lua +install -D -p -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.d/example.com.cfg.lua # Fix permissions for rpmlint chmod 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/util/*.so @@ -133,11 +111,7 @@ getent passwd %{name} > /dev/null || %{_sbindir}/useradd -r -g %{name} -d %{_loc exit 0 %post -%if 0%{?rhel} > 6 || 0%{?fedora} > 17 %systemd_post %{name}.service -%else -/sbin/chkconfig --add %{name} -%endif if [ ! -f %{sslkey} ]; then umask 077 @@ -147,7 +121,7 @@ if [ ! -f %{sslkey} ]; then fi if [ ! -f %{sslcert} ]; then - FQDN=`hostname` + FQDN=`hostname 2> /dev/null` if [ "x${FQDN}" = "x" ]; then FQDN=localhost.localdomain fi @@ -158,26 +132,12 @@ if [ ! -f %{sslcert} ]; then fi %preun -%if 0%{?rhel} > 6 || 0%{?fedora} > 17 %systemd_preun %{name}.service -%else -if [ $1 -eq 0 ]; then - /sbin/service %{name} stop > /dev/null 2>&1 || : - /sbin/chkconfig --del %{name} -fi -%endif %postun -%if 0%{?rhel} > 6 || 0%{?fedora} > 17 %systemd_postun_with_restart %{name}.service -%else -if [ $1 -ne 0 ]; then - /sbin/service %{name} condrestart > /dev/null 2>&1 || : -fi -%endif %files -%{!?_licensedir:%global license %%doc} %license COPYING %doc AUTHORS CHANGES HACKERS README doc/* %{_bindir}/%{name} @@ -193,14 +153,9 @@ fi %config(noreplace) %attr(0640,root,%{name}) %{_sysconfdir}/%{name}/conf.d/*.cfg.lua %attr(0750,root,%{name}) %{_sysconfdir}/%{name}/certs %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} -%if 0%{?rhel} > 6 || 0%{?fedora} > 17 %{_unitdir}/%{name}.service %{_tmpfilesdir}/%{name}.conf %dir %attr(0755,%{name},%{name}) /run/%{name}/ -%else -%{_sysconfdir}/rc.d/init.d/%{name} -%dir %attr(0755,%{name},%{name}) %{_localstatedir}/run/%{name}/ -%endif %dir %attr(0750,%{name},%{name}) %{_localstatedir}/lib/%{name}/ %dir %attr(0750,%{name},%{name}) %{_localstatedir}/log/%{name}/ %{_mandir}/man1/%{name}*.1*